Almost all of the material I read on probabilistic models/ probabilistic programming mentions separating solver and the model, thus stating the benifit that the model can be changed by the user irrespective of the solver. I am a bit hazy about how this benifit comes about only in probabilistic models. Even common machine learning algorithms (regression or any other algorithm), which are basically solvers are not model specific, as far as I understand. Can someone please clarify how they are separated by probabilistic models?