Name of 1-Tuple Data Type

Simon Peyton Jones simonpj at
Thu Jan 18 08:17:54 UTC 2018

Just to add: it would be sensible to use the same name for the data constructor as for the type constructor.  Thus, currently
            (,) ‘x’ True  ::  (,) Char Bool

So we’d expect
            Solo ‘x’  ::  Solo Char

or whatever name we choose.  Just worth bearing in mind when evaluating suggestions.


From: Libraries [mailto:libraries-bounces at] On Behalf Of Andrew Martin
Sent: 17 January 2018 23:47
To: Haskell Libraries <libraries at>
Subject: Name of 1-Tuple Data Type

Required background information:

GHC has a one-tuple (both a boxed variant and an unboxed variant). The unboxed variant currently must be fully applied whenever it is used. This is in stark contrast to all the other n-tuples (n > 1). It stems entirely from an issue of syntax. The solution decided on is to provide a normal prefix name for the 1-tuple. The name that GHC uses internally for this type is `Unit#` (there is also a boxed variant Unit). However, in the haskell community, the word "unit" already refers to the nullary tuple, not the unary tuple. So, we're bikeshedding the name.

Here are some possible options:

* Unary (as in unary tuple)
* Single (as in single, double, triple)
* Singleton (as is singleton, doubleton, tripleton)
* Only (<>)
* OneTuple (<>)
* Uni (means "one" in latin or greek or something like that)
* Mono (means "one" in latin or greek or something like that)

I would appreciate any feedback on the suggestions I provided or any additional suggestions for the name. If you have concerns about the feature itself, comment on the GHC Trac ticket. I'd prefer to keep this thread focused on just the problem of coming up with a name.

-Andrew Thaddeus Martin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Libraries mailing list