| On a related note, these are also apparently allowed (in 6.10.4):
|     f :: forall a. (Eq a => a -> a) -> a -> a
|    -- the Eq context prevents the function from ever being called.

That's not true.  E.g.
        f ((==) True) True
works fine.

|    g :: forall a. Ord a => (Eq a => a -> a) -> a -> a
|    -- the Eq context is effectively ignored

That's a bit more true, because Ord a implies Eq a, but still not really.  It 
still says that you must pass evidence for equality to g's argument.

Simon
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to