Haskell Architecture Proposal

I see basically 3 ways to remove an interdependency between core libraries:

  • Remove by refactoring the package that includes the dependency.
  • Remove by grouping with the dependency package.
  • Remove by moving the parts you need into base.

In my opinion, these three possibilites should be questioned in this order. The last option would be to move the dependency into base.