Logs: liberachat/#haskell
| 2025-11-09 05:56:48 | → | arcadewise joins (52968ed80d@2a03:6000:1812:100::3df) |
| 2025-11-09 05:56:48 | → | simendsjo joins (34b0550437@2a03:6000:1812:100::1441) |
| 2025-11-09 05:56:52 | → | tritlo joins (sid58727@id-58727.hampstead.irccloud.com) |
| 2025-11-09 05:56:53 | → | lally joins (sid388228@id-388228.uxbridge.irccloud.com) |
| 2025-11-09 05:57:03 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 2025-11-09 06:02:12 | trickard_ | is now known as trickard |
| 2025-11-09 06:06:13 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 06:08:16 | → | Raito_Bezarius joins (~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) |
| 2025-11-09 06:12:50 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-11-09 06:13:38 | × | trickard quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-11-09 06:13:52 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 2025-11-09 06:15:34 | × | tccq quits (~tccq@user/tccq) (Remote host closed the connection) |
| 2025-11-09 06:24:16 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 06:29:06 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-11-09 06:35:41 | → | takuan joins (~takuan@d8D86B9E9.access.telenet.be) |
| 2025-11-09 06:36:45 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 244 seconds) |
| 2025-11-09 06:40:09 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 06:44:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-09 06:50:11 | × | annamalai quits (~annamalai@157.33.220.201) (Ping timeout: 244 seconds) |
| 2025-11-09 06:51:39 | × | trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Ping timeout: 260 seconds) |
| 2025-11-09 06:54:44 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 2025-11-09 06:55:56 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 07:00:59 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-11-09 07:02:19 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 07:07:20 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-11-09 07:16:36 | → | tromp joins (~textual@2001:1c00:3487:1b00:b9c6:2c55:4165:c029) |
| 2025-11-09 07:17:12 | × | tromp quits (~textual@2001:1c00:3487:1b00:b9c6:2c55:4165:c029) (Client Quit) |
| 2025-11-09 07:18:01 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 07:22:32 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-09 07:33:28 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 07:38:36 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-11-09 07:49:16 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 07:51:58 | → | tromp joins (~textual@2001:1c00:3487:1b00:b9c6:2c55:4165:c029) |
| 2025-11-09 07:55:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-09 08:03:15 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 08:04:33 | × | trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Ping timeout: 260 seconds) |
| 2025-11-09 08:04:39 | → | trickard___ joins (~trickard@cpe-62-98-47-163.wireline.com.au) |
| 2025-11-09 08:05:06 | → | tt12310978324354 joins (~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) |
| 2025-11-09 08:08:18 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-11-09 08:15:48 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-11-09 08:19:02 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 08:21:13 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 2025-11-09 08:24:00 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-11-09 08:24:30 | trickard___ | is now known as trickard |
| 2025-11-09 08:34:50 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 08:39:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-11-09 08:44:38 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 2025-11-09 08:46:11 | × | tromp quits (~textual@2001:1c00:3487:1b00:b9c6:2c55:4165:c029) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-11-09 08:46:40 | × | Square3 quits (~Square@user/square) (Ping timeout: 256 seconds) |
| 2025-11-09 08:50:38 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 08:51:13 | × | trickard quits (~trickard@cpe-62-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-11-09 08:51:27 | → | trickard_ joins (~trickard@cpe-62-98-47-163.wireline.com.au) |
| 2025-11-09 08:55:36 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-11-09 08:56:38 | × | fmlatghor quits (~lcoogan@user/fmlatghor) (Remote host closed the connection) |
| 2025-11-09 08:57:03 | → | fmlatghor joins (~lcoogan@user/fmlatghor) |
| 2025-11-09 09:00:15 | trickard_ | is now known as trickard |
| 2025-11-09 09:04:15 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 09:09:16 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-11-09 09:19:50 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 2025-11-09 09:20:03 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 09:20:57 | → | califax joins (~califax@user/califx) |
| 2025-11-09 09:24:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-09 09:29:43 | × | trickard quits (~trickard@cpe-62-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-11-09 09:29:57 | → | trickard_ joins (~trickard@cpe-62-98-47-163.wireline.com.au) |
| 2025-11-09 09:31:55 | <kaol> | Is there something like Void but that's * -> *? Sort of like Maybe that's guaranteed to always be Nothing. |
| 2025-11-09 09:32:17 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 2025-11-09 09:33:00 | <humasect> | a -> () ? |
| 2025-11-09 09:33:15 | → | califax joins (~califax@user/califx) |
| 2025-11-09 09:35:48 | <tomsmeding> | a -> Void, rather |
| 2025-11-09 09:35:50 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 09:36:19 | <tomsmeding> | kaol: should there be a value of this type or not? "Maybe that is always Nothing" has 1 value (Nothing); VOid has 0 values |
| 2025-11-09 09:37:08 | <tomsmeding> | If yes then `Const ()`; if no then `Const Void` |
| 2025-11-09 09:37:18 | <tomsmeding> | (Data.Functor.Const in base) |
| 2025-11-09 09:37:20 | <dibblego> | I understand the question to mean: newtype X a; |
| 2025-11-09 09:37:33 | <tomsmeding> | a newtype must have one constructor |
| 2025-11-09 09:37:37 | <dibblego> | er, data |
| 2025-11-09 09:37:49 | <tomsmeding> | but then it's not like Void |
| 2025-11-09 09:38:03 | <tomsmeding> | it's more like (), and either `data X a` indeed, or `Const ()`, works |
| 2025-11-09 09:38:27 | <tomsmeding> | bah my brain this morning |
| 2025-11-09 09:38:48 | <tomsmeding> | one of these, exercise for the reader to figure out which |
| 2025-11-09 09:39:53 | <kaol> | I was thinking that if I have some data Foo a = { foo :: a Int } then I can have Foo Identity to have something that always has a foo and Foo Maybe that would optionally have a foo. I wondered whether there is some Foo X that would give me a data that'd have no foo. |
| 2025-11-09 09:40:48 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-11-09 09:40:52 | <tomsmeding> | Const Void |
| 2025-11-09 09:42:22 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 2025-11-09 09:43:24 | → | califax joins (~califax@user/califx) |
| 2025-11-09 09:46:15 | × | trickard_ quits (~trickard@cpe-62-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-11-09 09:46:28 | → | trickard_ joins (~trickard@cpe-62-98-47-163.wireline.com.au) |
| 2025-11-09 09:47:17 | <kaol> | I'm not sure if I can have any values having that type. I'd still like to have a record containing the other fields. |
| 2025-11-09 09:47:40 | <tomsmeding> | oh I see |
| 2025-11-09 09:47:44 | <tomsmeding> | then Const () :) |
| 2025-11-09 09:47:57 | → | Tuplanolla joins (~Tuplanoll@91-159-187-167.elisa-laajakaista.fi) |
| 2025-11-09 09:49:10 | <kaol> | Neat. I'm not sure if I need it after all but I started still thinking that surely there's a Type -> Type for this case too. |
| 2025-11-09 09:51:13 | <tomsmeding> | kaol: as dibblego mentioned, you don't need predefined types for this, and in fact it might be more intuitive to write your own; the "no values at all" is `data None a` (isomorphic to Const Void), and the "exactly one value" is `data One a = One` (isomorphic to Const ()) |
| 2025-11-09 09:51:37 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-09 09:54:01 | <kaol> | I may need the construct across multiple modules and then I'd be better off using the same data One a = One via an import and if I import then I could get it from a library as well. |
| 2025-11-09 09:55:04 | <tomsmeding> | fair |
| 2025-11-09 09:56:42 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-11-09 09:56:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-11-09 10:04:57 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-11-09 10:05:15 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
All times are in UTC.