[Haskell-cafe] template haskell for typeclass synonyms

Antoine Latter aslatter at gmail.com
Mon Nov 1 19:12:56 EDT 2010


2010/11/1 Paolino <paolo.veronelli at gmail.com>:
> I think I've got something nice in the end.
>
> http://hpaste.org/41042/classsynonymhs
>
> example:
>
> class  (    ParteDi (Servizio a) s
>         ,    Read a
>         ,    Eq a
>         ,     Show a
>         ,     Integer `ParteDi` s
>         ) ⇒ SClass s a
>
> $(classSynonym ''SClass)
>
> ghci ":i SClass" command is printing some strange type variables but it
> compiles
>

Template Haskell might be overkill for this. In the past, I've done:

> class (Eq b, Show b, MyClass b, MyOtherClass b) => MySynonym b
> instance (Eq b, Show b, MyClass b, MyOtherClass b) => MySynonym b

I think this requires a couple of GHC extensions, but TemplateHaskell
is an extension as well. Maybe there are pitfalls with this approach.

Antoine


More information about the Haskell-Cafe mailing list