I have a hard time fully understanding this request without more context. But I do think I understand the last paragraph. And it seems bound to create class incoherence. What if someone else *does* write that orphan instance you're avoiding writing?
Richard On Aug 22, 2015, at 12:54 PM, David Feuer <david.fe...@gmail.com> wrote: > From time to time, a library lacks an instance for something that I want. For > example, I may need to convert > > data Foo = Bar (Vector Baz) > > to FishFood, but (to avoid unreasonable dependencies) Vector doesn't have a > ToFishFood instance, so I can't just write > > instance ToFishFood Foo > > and (using Generic magic) be done with it. Instead, I must write the instance > completely by hand, which could be painful. I *could* write an orphan > instance, but orphans are evil. > > What I wish I could do: > > newtype Vec a = Vec (Vector a) > > instance ToFishFood a => (newtype Vec) a where > -- if needed > toFishFood (v :: Vector a) = ... > > That is, I want to write a super-secret orphan instance for Vector and > transfer it to Vec via GND precisely when it is legal to do so. The secret > instance could itself be derived (if the constructors are visible) or could > make use of default member definitions. > > _______________________________________________ > ghc-devs mailing list > ghc-devs@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs