Simon Peyton-Jones wrote:
> 
> | info :: (Collects e ce, Show e) => ce -> String
> | info v = show ((one v) ::e)
> 
> As the error message says, and as the Haskell report says,
> this means
> 
>   info v = show ((one v) :: (forall e.e))
> 
> which is not what you meant.  

Ok, I did not know that I have to mention a type variable in the pattern
on the lhs in order to use it monomorphically on the rhs, like in:

    info (v :: ce) = show (one (v :: ce))

Still, I would like to get "e" as a monomorphic type from the functional
dependency "ce -> e" in class Collects, maybe as a language extension in
the form of:
   
    info (v :: ce | ce -> e) = show ((one v) :: e)

Cheers Christian
_______________________________________________
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to