In addition to the important question of what goes in the prelude, another question is: "What goes in the library?"
Is there a list somewhere of the functionality we will include?
- bool/numbers
- list/option/sums/products
- string, ascii
- finite sets
- finite maps
- vector, hlist, member, fin
How about concepts (e.g. common type classes from Haskell)?
- functor/applicative/monad
- monoid/semi-group
- lens
- classes for maps, sets, etc
- decidable equality
I imagine that some of the things that I've listed here should be split into other libraries (luckily with opam/nix it should be easy). Other pieces should be in here. So, where will we draw the line?
Personally, I lean a bit towards a collection of repositories that focus on individual concepts but standardized in some way, though small repos have their own downsides as well
In addition to the important question of what goes in the prelude, another question is: "What goes in the library?"
Is there a list somewhere of the functionality we will include?
How about concepts (e.g. common type classes from Haskell)?
I imagine that some of the things that I've listed here should be split into other libraries (luckily with opam/nix it should be easy). Other pieces should be in here. So, where will we draw the line?
Personally, I lean a bit towards a collection of repositories that focus on individual concepts but standardized in some way, though small repos have their own downsides as well