[Haskell-cafe] Why were datatype contexts removed instead of "fixing them"?
Emil Axelsson
emax at chalmers.se
Fri Apr 26 07:06:41 CEST 2013
2013-04-26 04:31, wren ng thornton skrev:
> On 4/25/13 9:49 PM, Dan Doel wrote:
>> I don't really think they're worth saving in general, though. I haven't
>> missed them, at least.
>
> The thing I've missed them for (and what I believe they were originally
> designed for) is adding constraints to derived instances. That is, if I
> have:
>
> data Bar a => Foo a = ... deriving Baz
>
> Then this is equivalent to:
>
> data Foo a = ...
> instance Bar a => Baz (Foo a) where ...
>
> where the second ellipsis is filled in by the compiler. Now that these
> constraints have been removed from the language, I've had to either (a)
> allow instances of derived classes which do not enforce sanity
> constraints, or (b) implement the instances by hand even though they're
> entirely boilerplate.
I think standalone deriving solves this:
deriving instance Bar a => Baz (Foo a)
/ Emil
More information about the Haskell-Cafe
mailing list