Daniel Russell wrote:
> 
> Kevin Atkinson wrote:
> 
> >Could someone tell me why this is not allowed and if there is a possible
> >workaround. (I know this example seems pointless however it is a real
> >concern as having bulk types in the context is something I would really
> >like to do.)
> 
> Here's the not allowed bit:
> 
> >class Listable c a where
> >  toList     :: c a -> [a]
> 
> The kind of c in the above class declaration is * -> *. That is, unary type
> constructors can be provided as actual arguments in instance declarations.
> 
> >class Find c a b where
> >  find       :: a -> c a b -> b
> 
> The kind of c in this class declaration is * -> * -> *. That is, binary type
> constructors can be provided as actual arguments in instance declarations.
> 
> >instance (Listable c (a,b)) => Find c a b where
> >  find a c = lookup a (toList c)
> 
> Here you are trying to use c with two distinct kinds.

I guess I really don't understand the type system very well.  How would
I fix such an error?
-- 
Kevin Atkinson
[EMAIL PROTECTED]
http://metalab.unc.edu/kevina/


Reply via email to