minor: use Lazy.lazy_from_fun instead of Lazy.from_fun for 3.12 compatibility
minor first-class module changes for 3.12 compatibility
improve fake: use cleaner types for the AST helpers
improve fake: get rid of first-class modules for plain old functors
improve fake: merge production of definitions and declarations
Merge pull request #38 from gasche/improve_fake

Improve fake.ml (on top of rgrinberg's changes)