Proposal for stand-alone deriving declarations?
Manuel M T Chakravarty
chak at cse.unsw.edu.au
Thu Oct 5 10:47:55 EDT 2006
> On http://hackage.haskell.org/trac/haskell-prime/wiki/
> DerivedInstances it says:
> "- There is no way to derive an instance of a class for a data type
> that is defined elsewhere (in another module)."
> Though there is no proposal to fix this. Would such a proposal be
> appropriate for Haskell'?
I think this would be a useful feature to have. (I certainly wished to
have independent deriving declarations many times when writing Haskell
code.) It also seems to be a fairly small, well understood extension.
> If so, I propose to add a top-level declaration on the form:
> 'deriving' qtycls 'for' qtycon
> which produces the same instance as a deriving clause in the
> declaration of the datatype or newtype would.
I guess, the right way to go about this would be to say that independent
deriving declarations are the fundamental way of deriving a type class.
The original form of a deriving clause at a data/newtype declaration is,
then, just a syntactic shorthand for a data/newtype declaration plus a
bunch of independent deriving declarations.
What is not so nice is that you take a new keyword ('for'), which is
quite likely to have been used as a variable name in existing code. (Or
does it work out to use one of the 'special' names here?)
I think it would be useful to write the proposal in complete detail up
on the Haskell' wiki.
More information about the Haskell-prime