Along these lines I’ve been working off and on on a Haskell wrapper for Stan, a bespoke MCMC language. The idea is to manage the data pipeline in Haskell, use a nice dsl to write the model code, then manage the input data, running and output in Haskell and pull the results back into Haskell for further analysis.
It’s data-frame agnostic, though I mostly use the Frames library, which I find beautiful and maddening in roughly equal measure.
Current version is here: GitHub - adamConnerSax/haskell-stan: haskell/Stan (Bayesian modeling language) interface building on hs-cmdstan
I’m currently in the middle of a major cleanup/reorg (on the MultiLib branch) but the main ideas won’t change.