<div dir="ltr">According to sections 7.4.3 and 7.4.4 of the latest Haskell documentation<div><a href="https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/data-type-extensions.html">https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/data-type-extensions.html</a><br></div><div><br></div><div>you can define (7.4.3) an infix type constructor as long as it begins with a colon, for example</div><div>data a :*: b = Foo a b<br></div><div><br></div><div>and furthermore (7.4.4) you can define an infix operator without having to use a colon if you enable the TypeOperators extension:</div><div><div>data a * b = Foo a b</div></div><div><br></div><div>However if I try the former without using TypeOperators I get this compiler error in 7.10.2:</div><div><div>    Illegal declaration of a type or class operator ‘:*:’</div><div>      Use TypeOperators to declare operators in type and declarations</div></div><div><br></div><div>Using TypeOperators fixes this, but then * without colon also works so I don't see the point of using colon anymore.</div><div><br></div><div>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?</div><div><br></div><div>John</div><div><br></div></div>