The User's Guide says:

        The only thing that differs between operators in types and
        operators in expressions is that ordinary non-constructor
        operators, such as + and * are not allowed in types.  Reason:
        the uniform thing to do would be to make them type variables,
        but that's not very useful.  A less uniform but more useful thing
        would be to allow them to be type constructors.  But that gives
        trouble in export lists.  So for now we just exclude them.

Conal has pointed out that the uniform thing would be useful for
general arrow combinators:

        liftA2 :: Arrow (~>) =>
                (a -> b -> c) -> (e ~> a) -> (e ~> b) -> (e ~> c)
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to