[Haskell-cafe] Combining Wouter's expressions with extensible records

Antoine Latter aslatter at gmail.com
Wed Jul 9 23:01:49 EDT 2008

On Wed, Jul 9, 2008 at 9:40 PM, Ron Alford <ronwalf at volus.net> wrote:
> Ok, but to make it part of a record, it needs to implement Data:
> data Expr f = In (f (Expr f)) deriving Data
> but this gives
>    No instances for (Data (f (Expr f)), Typeable (Expr f))
>      arising from the 'deriving' clause of a data type declaration
>                   at Planning/Wouter.hs:77:0-42

The Data class has a requirement that any instances are also instances
of Typeable, so you'd really want

> data ... = ...  deriving (Data, Typeable)

Except that I couldn't derive Typeable for your particular data type.

It isn't immediately obvious to me that the "Typeable" family of
classes deal at all with higher-kinded type constructors, but I didn't
look that hard.


More information about the Haskell-Cafe mailing list