haskell/play-haskell

Expose more packages

tomsmeding opened this issue · 6 comments

Currently we expose only the GHC boot libs, which excludes potentially useful stuff like random. There is a design question here: how much do we want to expose? All of hackage is nigh impossible, all of stackage is potentially possible but very resource-hungry and frankly overkill. Installing packages on-demand is a rathole I'd rather not get into, I think. What to do?

I would suggest adding:

  • vector
  • random
  • base16
  • base64
  • async
  • aeson
  • effectful-core
  • effectful

at which point we could just as well expose a bunch more from their collective transitive dependency set:

aeson assoc async attoparsec attoparsec base16 base64 base-compat base-compat-batteries base-orphans bifunctors comonad contravariant data-array-byte data-fix distributive dlist effectful effectful-core generically hashable indexed-traversable indexed-traversable-instances integer-logarithms monad-control OneTuple primitive QuickCheck random safe-exceptions scientific semialign semigroupoids splitmix StateVar strict tagged text-short th-abstraction these time-compat transformers-base transformers-compat unliftio unliftio-core unordered-containers uuid-types vector vector-stream witherable

It looks like a solid set of packages indeed!

It would also be important to list in a "about" page/modal the list of these packages and their version as their appear in the freeze file

Basic functionality has been implemented, remaining work is in #17