data-has
data-has copied to clipboard
Consider replacing the default definition of `Has` with a generic implementation (c.f. generic-lens).
generic-lens has a generic typed lens: http://hackage.haskell.org/package/generic-lens-1.0.0.2/docs/Data-Generics-Product-Typed.html
I believe this would be a perfect fit for the default implementation of Has. This would allow one to write something like this:
data Env = Env
{ logger :: Logger
, ...
} deriving ( Generic, Has Logger )
and it'll just work.