Skip to content

Outdated documentation for type operators

John Leo writes:

According to sections 7.4.3 and 7.4.4 of the latest GHC documentation 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?


Answer: it's just historical and the documentation is wrong.

Trac metadata
Trac field Value
Version 7.11
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Documentation
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information