Type operators in GHC

Iavor Diatchki iavor.diatchki at gmail.com
Wed Jan 18 20:01:06 CET 2012


My preference would be to change the behavior of the "TypeOperator"
flag.  Here is my reasoning:
  * Having two operators with slightly different meanings would be
very confusing, not just for beginners but for everyone.
  * The two behaviors are not compatible in the sense that they can't
co-exist in the same language standard.  So something is bound to
break later on, and it'd be better to update packages now, before we
have grown a bigger code base that uses two incompatible extensions.
  * As I see it, having type-operator variables is useful in (some)
APIs (e.g., the parameters of the arrow classes), while type-operator
constructors are useful in defining concrete types/type-functions
(e.g., concrete implementations of arrows).  I expect that there are a
lot more concrete implementations than APIs (this is the whole point
of abstraction, after all!) so I think that it is a good trade-off to
use the nicer notation for the more common case.

PS: In the interest of fairness, I am also partial to the new notation
because I've been working on support for arithmetic at the type-level,
and seem to have developed a bit of an allergy to typing :+:, :*:, :<=
etc all the time :-)

On Wed, Jan 18, 2012 at 9:36 AM, Brandon Allbery <allbery.b at gmail.com> wrote:
> On Wed, Jan 18, 2012 at 10:42, Brent Yorgey <byorgey at seas.upenn.edu> wrote:
>> I'm not sure at this point which way I would lean on the issue.
>> Having infix type constructors that don't have to start with : is
>> something I would like, too.  But I just thought I would point out
>> that code like tc192 is not as esoteric as you seem to think.
> I seem to recall @src outputting a Prelude definition for something
> (Monoid?) that used (*) as a type variable.
> --
> brandon s allbery                                      allbery.b at gmail.com
> wandering unix systems administrator (available)     (412) 475-9364 vm/sms
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

More information about the Glasgow-haskell-users mailing list