Name of 1-Tuple Data Type

David Feuer david.feuer at
Thu Jan 18 00:15:45 UTC 2018

At present, Unit# is the only way to turn a lifted type into an unlifted
one. Perhaps
Unlift# or Lower# would make sense? The tricky bit is that one could easily
imagine eventually having a version with a strict constructor, in which
case it becomes a bit hard to guess which is which.

On Wed, Jan 17, 2018 at 6:46 PM, Andrew Martin <andrew.thaddeus at>
> 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
> in stark contrast to all the other n-tuples (n > 1). It stems entirely
> 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
> 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
> _______________________________________________
> Libraries mailing list
> Libraries at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Libraries mailing list