I am not sure why I din't see this at the time of the initial submission.
The case of a model build and save (for say OLS) would be:
mdl_ds := Regression.OLS(independents, dependents).getModel;
The case for using a saved model would be:
mdl_ds := DATASET(...);
predictions := Regression.OLS().Predict(new_x, mdl_ds);
It would look better if IRegression module was parameterless. It doesn't need or use parameters.
Then the cases would be:
mdl_ds := Regression.OLS.getModel(independents, dependents);
predictions := Regression.OLS.Predict(new_x, mdl_ds);