
Required background information: https://ghc.haskell.org/trac/ghc/ticket/14673 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 ( https://hackage.haskell.org/package/Only-0.1/docs/Data-Tuple-Only.html) * OneTuple ( https://hackage.haskell.org/package/OneTuple-0.2.1/docs/Data-Tuple-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

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
Required background information: https://ghc.haskell.org/trac/ghc/ticket/14673
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 (https://hackage.haskell.org/package/Only-0.1/docs/Data-Tuple-Only.html) * OneTuple ( https://hackage.haskell.org/package/OneTuple-0.2.1/docs/Data-Tuple-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
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

At present, Unit# is the only way to turn a lifted type into an unlifted one
Actually, (# Int, Bool #) does so too. Unboxed one-tuples (currnently called Unit#) is the special case with one argument.
Simon
From: Libraries [mailto:libraries-bounces@haskell.org] On Behalf Of David Feuer
Sent: 18 January 2018 00:16
To: Andrew Martin
Required background information: https://ghc.haskell.org/trac/ghc/ticket/14673
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 (https://hackage.haskell.org/package/Only-0.1/docs/Data-Tuple-Only.htmlhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fhackage.haskell.org%2Fpackage%2FOnly-0.1%2Fdocs%2FData-Tuple-Only.html&data=02%7C01%7Csimonpj%40microsoft.com%7C7d81930a5d3b407cfd7608d55e08b60f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636518313867711942&sdata=qujBDi9OVAc1Vm68gI%2FK1Yv9us7xtomLwRw9UnUrefo%3D&reserved=0) * OneTuple (https://hackage.haskell.org/package/OneTuple-0.2.1/docs/Data-Tuple-OneTuple....https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fhackage.haskell.org%2Fpackage%2FOneTuple-0.2.1%2Fdocs%2FData-Tuple-OneTuple.html&data=02%7C01%7Csimonpj%40microsoft.com%7C7d81930a5d3b407cfd7608d55e08b60f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636518313867711942&sdata=l7aIxyiWUBdzTHKqTx3%2FkftDWFFlQ1Z4ODlVsNR5wGE%3D&reserved=0) * 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
_______________________________________________ Libraries mailing list Libraries@haskell.orgmailto:Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/librarieshttps://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Flibraries&data=02%7C01%7Csimonpj%40microsoft.com%7C7d81930a5d3b407cfd7608d55e08b60f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636518313867711942&sdata=tI176CxY4pnpeEMxTbGfv9vDO4%2B9VffmF0kreQuQViU%3D&reserved=0

The problem with using Identity and Identity# is that there's already
something in base named Identity, and since it's a newtype (not a data
type), it has the wrong semantics concerning laziness for this kind of
thing.
On Wed, Jan 17, 2018 at 7:27 PM, M Farkas-Dyck
Identity#
-- -Andrew Thaddeus Martin

Identity# is my favorite of all those I've seen suggested thus far.
On Wed, Jan 17, 2018 at 5:27 PM, M Farkas-Dyck
Identity# _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

Only has two virtues I can see easily: it's short (shorter than almost all
the others), and it has the same feel as Maybe.
There is also Id, the name of the mathematical function that this type (and
corresponding data) constructor is. Less pithy but even less intrusive.
On Jan 17, 2018 15:47, "Andrew Martin"

I've seen Only in the wild, and it's probably my favorite of the initial
suggestions for the same reasons as Ryan. Mono is my second pick from that
list.
Id is very clean, but I could see pedagogical issues arising from name
confusion. Sing(le(ton)) is a terrible idea for the same reason.
Venturing my own paint swatch: Solo fits in nicely with the established
size-specific names (pair, triple, etc.) and has all the good traits:
short, self-explanatory, nothing with a confusingly similar name (that I
know of).
On Jan 17, 2018 4:35 PM, "Ryan Reich"

I quite like Solo.
Simon
From: Libraries [mailto:libraries-bounces@haskell.org] On Behalf Of Theodore Lief Gannon
Sent: 18 January 2018 02:42
To: Ryan Reich

I deem this feature outside of the mainstream, so it should not occupy a short nice name. I suggest UnaryTuple. On 18.01.2018 09:22, Simon Peyton Jones via Libraries wrote:
I quite like Solo.
Simon
*From:*Libraries [mailto:libraries-bounces@haskell.org] *On Behalf Of *Theodore Lief Gannon *Sent:* 18 January 2018 02:42 *To:* Ryan Reich
*Cc:* Haskell Libraries *Subject:* Re: Name of 1-Tuple Data Type I've seen Only in the wild, and it's probably my favorite of the initial suggestions for the same reasons as Ryan. Mono is my second pick from that list.
Id is very clean, but I could see pedagogical issues arising from name confusion. Sing(le(ton)) is a terrible idea for the same reason.
Venturing my own paint swatch: Solo fits in nicely with the established size-specific names (pair, triple, etc.) and has all the good traits: short, self-explanatory, nothing with a confusingly similar name (that I know of).
On Jan 17, 2018 4:35 PM, "Ryan Reich"
mailto:ryan.reich@gmail.com> wrote: Only has two virtues I can see easily: it's short (shorter than almost all the others), and it has the same feel as Maybe.
There is also Id, the name of the mathematical function that this type (and corresponding data) constructor is. Less pithy but even less intrusive.
On Jan 17, 2018 15:47, "Andrew Martin"
mailto:andrew.thaddeus@gmail.com> wrote: Required background information: https://ghc.haskell.org/trac/ghc/ticket/14673
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 (https://hackage.haskell.org/package/Only-0.1/docs/Data-Tuple-Only.html https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fhackage.haskell.org%2Fpackage%2FOnly-0.1%2Fdocs%2FData-Tuple-Only.html&data=02%7C01%7Csimonpj%40microsoft.com%7C3db602b14f26474965ff08d55e1d285f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636518401685292292&sdata=fMbHCFU%2Br3JHwmI8a4QgHD26fhoclfklE3xA0O6tCE4%3D&reserved=0)
* OneTuple (https://hackage.haskell.org/package/OneTuple-0.2.1/docs/Data-Tuple-OneTuple.... https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fhackage.haskell.org%2Fpackage%2FOneTuple-0.2.1%2Fdocs%2FData-Tuple-OneTuple.html&data=02%7C01%7Csimonpj%40microsoft.com%7C3db602b14f26474965ff08d55e1d285f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636518401685292292&sdata=rRLW8KJoKT5IQ5Y6s3kMrUOiUGk6xa77zb5VvGuAfGw%3D&reserved=0)
* 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
_______________________________________________ Libraries mailing list Libraries@haskell.org mailto:Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Flibraries&data=02%7C01%7Csimonpj%40microsoft.com%7C3db602b14f26474965ff08d55e1d285f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636518401685292292&sdata=AytyB%2BhKwE1TDDc8ohTJ9gDcCZgcizoyt8Tmue0u9Zs%3D&reserved=0
_______________________________________________ Libraries mailing list Libraries@haskell.org mailto:Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Flibraries&data=02%7C01%7Csimonpj%40microsoft.com%7C3db602b14f26474965ff08d55e1d285f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636518401685292292&sdata=AytyB%2BhKwE1TDDc8ohTJ9gDcCZgcizoyt8Tmue0u9Zs%3D&reserved=0
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-- Andreas Abel <>< Du bist der geliebte Mensch. Department of Computer Science and Engineering Chalmers and Gothenburg University, Sweden andreas.abel@gu.se http://www.cse.chalmers.se/~abela/

Are we talking about the following: {-# LANGUAGE MagicHash, KindSignatures #-} import GHC.Exts data Unit# (a :: TYPE 'UnliftedRep) = Unit# a -- | Also known as: -- -- https://hackage.haskell.org/package/vector-0.12.0.1/docs/Data-Vector-Fusion-... -- https://hackage.haskell.org/package/OneTuple-0.2.1/docs/Data-Tuple-OneTuple.... data Unit (a :: TYPE 'LiftedRep) = Unit a -- | Also known as -- -- https://hackage.haskell.org/package/vector-0.12.0.1/docs/Data-Vector-Fusion-... -- https://hackage.haskell.org/package/Only-0.1/docs/Data-Tuple-Only.html -- https://hackage.haskell.org/package/generics-sop-0.3.2.0/docs/Generics-SOP-B... newtype Identity a = Identity a -- Some libraries (cassava, postgresql-simple - today they use different `Only`!) need a wrapper around a type to provide `Field a => Row a` instances, I haven't needed a `Box` around lifted type, except when putting things into strict containers. That name weren't proposed, but I don't feel strongly for or against. Yet, I think `Box#` and `Box` have nice intuition in them. - Oleg On 18.01.2018 10:27, Andreas Abel wrote:
I deem this feature outside of the mainstream, so it should not occupy a short nice name.
I suggest UnaryTuple.
On 18.01.2018 09:22, Simon Peyton Jones via Libraries wrote:
I quite like Solo.
Simon
*From:*Libraries [mailto:libraries-bounces@haskell.org] *On Behalf Of *Theodore Lief Gannon *Sent:* 18 January 2018 02:42 *To:* Ryan Reich
*Cc:* Haskell Libraries *Subject:* Re: Name of 1-Tuple Data Type I've seen Only in the wild, and it's probably my favorite of the initial suggestions for the same reasons as Ryan. Mono is my second pick from that list.
Id is very clean, but I could see pedagogical issues arising from name confusion. Sing(le(ton)) is a terrible idea for the same reason.
Venturing my own paint swatch: Solo fits in nicely with the established size-specific names (pair, triple, etc.) and has all the good traits: short, self-explanatory, nothing with a confusingly similar name (that I know of).
On Jan 17, 2018 4:35 PM, "Ryan Reich"
mailto:ryan.reich@gmail.com> wrote: Only has two virtues I can see easily: it's short (shorter than almost all the others), and it has the same feel as Maybe.
There is also Id, the name of the mathematical function that this type (and corresponding data) constructor is. Less pithy but even less intrusive.
On Jan 17, 2018 15:47, "Andrew Martin"
mailto:andrew.thaddeus@gmail.com> wrote: Required background information: https://ghc.haskell.org/trac/ghc/ticket/14673
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 (https://hackage.haskell.org/package/Only-0.1/docs/Data-Tuple-Only.html https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fhackage.haskell.org%2Fpackage%2FOnly-0.1%2Fdocs%2FData-Tuple-Only.html&data=02%7C01%7Csimonpj%40microsoft.com%7C3db602b14f26474965ff08d55e1d285f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636518401685292292&sdata=fMbHCFU%2Br3JHwmI8a4QgHD26fhoclfklE3xA0O6tCE4%3D&reserved=0)
* OneTuple (https://hackage.haskell.org/package/OneTuple-0.2.1/docs/Data-Tuple-OneTuple.... https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fhackage.haskell.org%2Fpackage%2FOneTuple-0.2.1%2Fdocs%2FData-Tuple-OneTuple.html&data=02%7C01%7Csimonpj%40microsoft.com%7C3db602b14f26474965ff08d55e1d285f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636518401685292292&sdata=rRLW8KJoKT5IQ5Y6s3kMrUOiUGk6xa77zb5VvGuAfGw%3D&reserved=0)
* 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
_______________________________________________ Libraries mailing list Libraries@haskell.org mailto:Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Flibraries&data=02%7C01%7Csimonpj%40microsoft.com%7C3db602b14f26474965ff08d55e1d285f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636518401685292292&sdata=AytyB%2BhKwE1TDDc8ohTJ9gDcCZgcizoyt8Tmue0u9Zs%3D&reserved=0
_______________________________________________ Libraries mailing list Libraries@haskell.org mailto:Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Flibraries&data=02%7C01%7Csimonpj%40microsoft.com%7C3db602b14f26474965ff08d55e1d285f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636518401685292292&sdata=AytyB%2BhKwE1TDDc8ohTJ9gDcCZgcizoyt8Tmue0u9Zs%3D&reserved=0
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

It's certainly outside of the mainstream, but it's not going to be part of
the prelude. You'll need to import GHC.Prim or GHC.Exts to get a hold of
it. For this reason, I'm not too worried about stealing a good name.
On Thu, Jan 18, 2018 at 3:27 AM, Andreas Abel
I deem this feature outside of the mainstream, so it should not occupy a short nice name.
I suggest UnaryTuple.
On 18.01.2018 09:22, Simon Peyton Jones via Libraries wrote:
I quite like Solo.
Simon
*From:*Libraries [mailto:libraries-bounces@haskell.org] *On Behalf Of *Theodore Lief Gannon *Sent:* 18 January 2018 02:42 *To:* Ryan Reich
*Cc:* Haskell Libraries *Subject:* Re: Name of 1-Tuple Data Type I've seen Only in the wild, and it's probably my favorite of the initial suggestions for the same reasons as Ryan. Mono is my second pick from that list.
Id is very clean, but I could see pedagogical issues arising from name confusion. Sing(le(ton)) is a terrible idea for the same reason.
Venturing my own paint swatch: Solo fits in nicely with the established size-specific names (pair, triple, etc.) and has all the good traits: short, self-explanatory, nothing with a confusingly similar name (that I know of).
On Jan 17, 2018 4:35 PM, "Ryan Reich"
> wrote: Only has two virtues I can see easily: it's short (shorter than almost all the others), and it has the same feel as Maybe.
There is also Id, the name of the mathematical function that this type (and corresponding data) constructor is. Less pithy but even less intrusive.
On Jan 17, 2018 15:47, "Andrew Martin"
mailto:andrew.thaddeus@gmail.com> wrote: Required background information: https://ghc.haskell.org/trac/ghc/ticket/14673
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 (https://hackage.haskell.org/package/Only-0.1/docs/Data-Tupl e-Only.html <https://na01.safelinks.protection.outlook.com/?url=https% 3A%2F%2Fhackage.haskell.org%2Fpackage%2FOnly-0.1%2Fdocs% 2FData-Tuple-Only.html&data=02%7C01%7Csimonpj%40microsoft. com%7C3db602b14f26474965ff08d55e1d285f%7C72f988bf86f141af91a b2d7cd011db47%7C1%7C0%7C636518401685292292&sdata=fMbHCFU%2Br 3JHwmI8a4QgHD26fhoclfklE3xA0O6tCE4%3D&reserved=0>)
* OneTuple (https://hackage.haskell.org/package/OneTuple-0.2.1/docs/Dat a-Tuple-OneTuple.html <https://na01.safelinks.protection.outlook.com/?url=https% 3A%2F%2Fhackage.haskell.org%2Fpackage%2FOneTuple-0.2.1% 2Fdocs%2FData-Tuple-OneTuple.html&data=02%7C01%7Csimonpj% 40microsoft.com%7C3db602b14f26474965ff08d55e1d285f%7C72f988b f86f141af91ab2d7cd011db47%7C1%7C0%7C636518401685292292& sdata=rRLW8KJoKT5IQ5Y6s3kMrUOiUGk6xa77zb5VvGuAfGw%3D&reserved=0>)
* 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
_______________________________________________ Libraries mailing list Libraries@haskell.org mailto:Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries <https://na01.safelinks.protection.outlook.com/?url=http%3A% 2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo% 2Flibraries&data=02%7C01%7Csimonpj%40microsoft.com%7C3d b602b14f26474965ff08d55e1d285f%7C72f988bf86f141af91ab2d7cd01 1db47%7C1%7C0%7C636518401685292292&sdata=AytyB%2BhKwE1TDDc8o hTJ9gDcCZgcizoyt8Tmue0u9Zs%3D&reserved=0>
_______________________________________________ Libraries mailing list Libraries@haskell.org mailto:Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries <https://na01.safelinks.protection.outlook.com/?url=http%3A% 2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo% 2Flibraries&data=02%7C01%7Csimonpj%40microsoft.com%7C3d b602b14f26474965ff08d55e1d285f%7C72f988bf86f141af91ab2d7cd01 1db47%7C1%7C0%7C636518401685292292&sdata=AytyB%2BhKwE1TDDc8o hTJ9gDcCZgcizoyt8Tmue0u9Zs%3D&reserved=0>
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-- Andreas Abel <>< Du bist der geliebte Mensch.
Department of Computer Science and Engineering Chalmers and Gothenburg University, Sweden
andreas.abel@gu.se http://www.cse.chalmers.se/~abela/ _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-- -Andrew Thaddeus Martin

I like Solo. I think it would be a very good name for this for the reasons
you listed.
On Wed, Jan 17, 2018 at 9:41 PM, Theodore Lief Gannon
I've seen Only in the wild, and it's probably my favorite of the initial suggestions for the same reasons as Ryan. Mono is my second pick from that list.
Id is very clean, but I could see pedagogical issues arising from name confusion. Sing(le(ton)) is a terrible idea for the same reason.
Venturing my own paint swatch: Solo fits in nicely with the established size-specific names (pair, triple, etc.) and has all the good traits: short, self-explanatory, nothing with a confusingly similar name (that I know of).
On Jan 17, 2018 4:35 PM, "Ryan Reich"
wrote: Only has two virtues I can see easily: it's short (shorter than almost all the others), and it has the same feel as Maybe.
There is also Id, the name of the mathematical function that this type (and corresponding data) constructor is. Less pithy but even less intrusive.
On Jan 17, 2018 15:47, "Andrew Martin"
wrote: Required background information: https://ghc.haske ll.org/trac/ghc/ticket/14673
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 (https://hackage.haskell.org/package/Only-0.1/docs/Data-Tupl e-Only.html) * OneTuple (https://hackage.haskell.org/package/OneTuple-0.2.1/docs/Dat a-Tuple-OneTuple.html) * 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
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-- -Andrew Thaddeus Martin

Unit# seems fine to me, its not gonna be in prelude, its a short name,
i dislike Only because i've only really seen it come up in in DB libraries
:)
On Thu, Jan 18, 2018 at 1:36 PM, Andrew Martin
I like Solo. I think it would be a very good name for this for the reasons you listed.
On Wed, Jan 17, 2018 at 9:41 PM, Theodore Lief Gannon
wrote: I've seen Only in the wild, and it's probably my favorite of the initial suggestions for the same reasons as Ryan. Mono is my second pick from that list.
Id is very clean, but I could see pedagogical issues arising from name confusion. Sing(le(ton)) is a terrible idea for the same reason.
Venturing my own paint swatch: Solo fits in nicely with the established size-specific names (pair, triple, etc.) and has all the good traits: short, self-explanatory, nothing with a confusingly similar name (that I know of).
On Jan 17, 2018 4:35 PM, "Ryan Reich"
wrote: Only has two virtues I can see easily: it's short (shorter than almost all the others), and it has the same feel as Maybe.
There is also Id, the name of the mathematical function that this type (and corresponding data) constructor is. Less pithy but even less intrusive.
On Jan 17, 2018 15:47, "Andrew Martin"
wrote: Required background information: https://ghc.haske ll.org/trac/ghc/ticket/14673
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 (https://hackage.haskell.org/package/Only-0.1/docs/Data-Tupl e-Only.html) * OneTuple (https://hackage.haskell.org/package/OneTuple-0.2.1/docs/Dat a-Tuple-OneTuple.html) * 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
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-- -Andrew Thaddeus Martin
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

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.
Simon
From: Libraries [mailto:libraries-bounces@haskell.org] On Behalf Of Andrew Martin
Sent: 17 January 2018 23:47
To: Haskell Libraries

-1. Don't grap any of these nice names for that obscure feature. Take some ugly name. On 18.01.2018 00:46, Andrew Martin wrote:
Required background information: https://ghc.haskell.org/trac/ghc/ticket/14673
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 (https://hackage.haskell.org/package/Only-0.1/docs/Data-Tuple-Only.html) * OneTuple (https://hackage.haskell.org/package/OneTuple-0.2.1/docs/Data-Tuple-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.
-- Andreas Abel <>< Du bist der geliebte Mensch. Department of Computer Science and Engineering Chalmers and Gothenburg University, Sweden andreas.abel@gu.se http://www.cse.chalmers.se/~abela/

I imagine whatever name is chosen will have a # at the end.
On Thu, Jan 18, 2018 at 3:25 AM, Andreas Abel
-1.
Don't grap any of these nice names for that obscure feature. Take some ugly name.
On 18.01.2018 00:46, Andrew Martin wrote:
Required background information: https://ghc.haskell.org/trac/ghc/ticket/14673
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 (https://hackage.haskell.org/package/Only-0.1/docs/Data-Tuple-Only.html) * OneTuple (https://hackage.haskell.org/package/OneTuple-0.2.1/docs/Data-Tuple-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.
-- Andreas Abel <>< Du bist der geliebte Mensch.
Department of Computer Science and Engineering Chalmers and Gothenburg University, Sweden
andreas.abel@gu.se http://www.cse.chalmers.se/~abela/
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

I imagine whatever name is chosen will have a # at the end.
Then there is no concern. On 18.01.2018 09:31, Henning Thielemann wrote:
On Thu, 18 Jan 2018, David Feuer wrote:
I imagine whatever name is chosen will have a # at the end.
... and you can disambiguate using qualification. _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-- Andreas Abel <>< Du bist der geliebte Mensch. Department of Computer Science and Engineering Chalmers and Gothenburg University, Sweden andreas.abel@gu.se http://www.cse.chalmers.se/~abela/

On 18 January 2018 at 19:25, Andreas Abel
-1.
Don't grap any of these nice names for that obscure feature. Take some ugly name.
It seems like an obscure feature, but something similar has been re-implemented by a suprising number of libraries (vector, postgresql-simple, cassava, etc.). Typically when you want to differentiate a raw value from a (possible singular) collection of values (e.g. field vs row).
On 18.01.2018 00:46, Andrew Martin wrote:
Required background information: https://ghc.haskell.org/trac/ghc/ticket/14673
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 (https://hackage.haskell.org/package/Only-0.1/docs/Data-Tuple-Only.html) * OneTuple (https://hackage.haskell.org/package/OneTuple-0.2.1/docs/Data-Tuple-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.
-- Andreas Abel <>< Du bist der geliebte Mensch.
Department of Computer Science and Engineering Chalmers and Gothenburg University, Sweden
andreas.abel@gu.se http://www.cse.chalmers.se/~abela/
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com http://IvanMiljenovic.wordpress.com

On 2018-01-17 06:46 PM, Andrew Martin wrote:
Required background information: https://ghc.haskell.org/trac/ghc/ticket/14673 +1 for Only, because it's short and already in use. It's also used by my own libraries (https://hackage.haskell.org/package/rank2classes-1.0.1/docs/Rank2.html#t:Onl...), so I wouldn't need to rename it. Selfish I know.
participants (13)
-
Andreas Abel
-
Andrew Martin
-
Carter Schonwald
-
David Feuer
-
Henning Thielemann
-
Ivan Lazar Miljenovic
-
Kris Nuttycombe
-
M Farkas-Dyck
-
Mario Blažević
-
Oleg Grenrus
-
Ryan Reich
-
Simon Peyton Jones
-
Theodore Lief Gannon