[Haskell-cafe] Type families in export lists

Manuel M T Chakravarty chak at cse.unsw.edu.au
Sun May 31 07:10:44 EDT 2009


Lee Duhem:
> On Sat, May 30, 2009 at 7:35 PM, Maurí cio <briqueabraque at yahoo.com>  
> wrote:
>> Hi,
>>
>> How do I include type families (used as associated
>> types) in a module export list? E.g.:
>>
>> class MyClass a where
>>    type T a :: *
>>    coolFunction :: Ta -> a
>>    (...)
>>
>> If I just include MyClass and its functions in the
>> list, instances in other modules complain they don't
>> know T, but I wasn't able to find how (where) to
>> include T in the list.
>>
>
> In export list, you can treat 'type T a' as normal type declaration,  
> ie, write
> T(..)  in export list.

There is also special syntax to export associated types.  You can write

   MyClass (type T)

in the export list; cf,

   http://haskell.org/haskellwiki/GHC/Type_families#Import_and_export

Manuel



More information about the Haskell-Cafe mailing list