[Haskell-cafe] More experiments with ATs

Steffen Schuldenzucker sschuldenzucker at uni-bonn.de
Sun Jul 4 07:58:49 EDT 2010


On 07/04/2010 01:49 PM, Sjoerd Visscher wrote:
> 
> On Jul 4, 2010, at 11:31 AM, Andrew Coppin wrote:
>  
>>>> type family F f a :: *
>>>> class RFunctor f where
>>>>  (%) :: f a b -> (a -> b) -> F f a -> F f b
>>>>    
>>
>> I have literally no idea what a type family is. I understand ATs (I think!), but TFs make no sense to me.
>>
>> (For this reason, most if not all of the rest of this post doesn't make sense.)
> 
> I would have liked to use ATs here, like this:
> 
>> class RFunctor f where
>>   type F f a :: *
>>   (%) :: f a b -> (a -> b) -> F f a -> F f b
> 
> But this isn't valid as ATs require all type variables to be in scope, and 'a' isn't. 
> There's a GHC ticket for this: http://hackage.haskell.org/trac/ghc/ticket/3714

This works (on my ghc-6.12.2):

> class Rfunctor f where
>     type F f :: * -> *
>     (%) :: f a b -> (a -> b) -> F f a -> F f b

> [...]

-- Steffen


More information about the Haskell-Cafe mailing list