[Haskell-cafe] type operators and colon in GHC

John Leo leo at halfaya.org
Sun Nov 22 04:40:05 UTC 2015


According to sections 7.4.3 and 7.4.4 of the latest Haskell documentation
https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/data-type-extensions.html

you can define (7.4.3) an infix type constructor as long as it begins with
a colon, for example
data a :*: b = Foo a b

and furthermore (7.4.4) you can define an infix operator without having to
use a colon if you enable the TypeOperators extension:
data a * b = Foo a b

However if I try the former without using TypeOperators I get this compiler
error in 7.10.2:
    Illegal declaration of a type or class operator ‘:*:’
      Use TypeOperators to declare operators in type and declarations

Using TypeOperators fixes this, but then * without colon also works so I
don't see the point of using colon anymore.

My guess is this was some some kind of historical distinction which is no
longer valid and the documentation needs to be updated.  Is this true, or
am I missing something?

John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20151121/11a7efdd/attachment.html>


More information about the Haskell-Cafe mailing list