tweag / monad-bayes

A library for probabilistic programming in Haskell.
MIT License
404 stars 62 forks source link

Consider moving pipes dependency to separate library? #260

Open turion opened 1 year ago

turion commented 1 year ago

Right now, when one wants to install monad-bayes, it pulls in pipes as a dependency, and with that many other dependencies completely unrelated to monad-bayes. I'd recommend splitting out the parts that use pipes (I think it's just a streaming example?) into a separate library monad-bayes-pipes in the same repository. That way, the dependency tree of monad-bayes is much more lightweight, which makes it easier for other to use it.

turion commented 1 year ago

@reubenharry what do you think about that?

reubenharry commented 1 year ago

That's fine with me. Especially now that rhine-bayes exists, the streaming stuff is not so important. I think the docs may mention the tui, which uses mcmcP, but other than that, I think splitting it out should be straightforward.

turion commented 1 year ago

How about the following proposed directory structure:

reubenharry commented 1 year ago

Fine with me, although if it requires more than a little work, it seems to me like not a good use of time, since monad-bayes is unlikely to have many users beyond us. Note btw that the notebooks have a wide variety of dependencies, and those are separated, using nix, from the main dependencies of monad-bayes. Perhaps the pipes examples could just be put in notebooks too?