
This behavior changed in 7.6 I believe.
It used to be that type operators needed to start with a colon, but that restriction was dropped. The documentation is out of date. Ticket #11046 is about updating Template Haskell to match the new behavior, but it doesn't affect the core story of type operators in (non-Template) Haskell. The core story is actually quite simple: all non-reserved symbols are type *constructors*, not type *variables*.
I'll post a bug about the documentation, which needs to be fixed, indeed.
Richard
On Dec 10, 2015, at 10:58 AM, John Leo
Thanks, that's helpful. Sounds like the situation is even more complicated than I realized. It will be great if the documentation can be updated once the behavior stabilizes.
John
On Thu, Dec 10, 2015 at 7:54 AM, Alexey Vagarenko
wrote: This ticket might be relevant https://ghc.haskell.org/trac/ghc/ticket/11046 2015-12-10 20:51 GMT+05:00 John Leo
: I sent this to haskell-cafe a little while ago but didn't get a response, so I thought I'd try here. I'd guess this is a case of the GHC user guide needing an update, but I'd like an expert opinion. ---
According to sections 7.4.3 and 7.4.4 of the latest GHC documentation https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/data-type-ex... 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
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs