Fcf is starting to get pretty big, it seems a good idea to split it into many modules, to make the doc easier to navigate and to provide a convenient way to import small pieces of the library.
Suggested plan:
Fcf.Core for the definition of Eval
Fcf.Utils for non-fcf definitions
Fcf.Combinators for general combinators (all the Exp-as-monad stuff)
Fcf.Data for definitions tied to common data types ([], Maybe, Either, (,), etc.)
Fcf.Classes for Map, Bimap
Fcf.Nat
I'm not yet sure where to put the other definitions at the end.
Fcf
is starting to get pretty big, it seems a good idea to split it into many modules, to make the doc easier to navigate and to provide a convenient way to import small pieces of the library.Suggested plan:
Fcf.Core
for the definition ofEval
Fcf.Utils
for non-fcf definitionsFcf.Combinators
for general combinators (all theExp
-as-monad stuff)Fcf.Data
for definitions tied to common data types ([]
,Maybe
,Either
,(,)
, etc.)Fcf.Classes
forMap
,Bimap
Fcf.Nat
I'm not yet sure where to put the other definitions at the end.