Work out a sensible API
Closed this issue · 2 comments
Currently, more or less every module exports everything. This is bad for modularity and stability. We need to work out what people actually use and what is useful and export only that. I'd really like to do that before making another release, so we can stop doing horrible things to the version number to keep with the PVP
Here's a list of reverse dependencies: http://bifunctor.homelinux.net/~roel/cgi-bin/hackage-scripts/revdeps/haskell-src-meta-0.2#direct
There are some additional dependencies that use 1.1.
I would like to add that it would be nice if some modules might be removed or merged. Especially if this can remove some dependencies.
Is the Language.Haskell.TH.Instances.Lift used by anyone?
I seems Language.Haskell.Meta.Parse and Language.Haskell.Meta.Syntax.Translate are the only modules essential to the purpose of the library ("Parse source to template-haskell abstract syntax."). Perhaps most of the other modules could be outsourced into new or other existing libraries?
I moved the ADo and Idiom quasiquoters to a new package, which I called applicative-quoters. The Here quasiquoter didn't seem interesting so I binned it, while the rest I moved into an 'examples' directory (so they are no longer exported).
I can see how Syntax.Vars might be useful but I don't think haskell-src-meta is the right place for it. I'm not sure if it's sufficiently useful to give it its own package.