| 2025-12-11 00:04:02 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) emmanuelux |
| 2025-12-11 00:04:31 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds) |
| 2025-12-11 00:08:10 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-11 00:13:54 +0100 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2025-12-11 00:18:51 +0100 | karenw | (~karenw@user/karenw) karenw |
| 2025-12-11 00:30:25 +0100 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2025-12-11 00:31:55 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2025-12-11 00:33:35 +0100 | tromp | (~textual@2001:1c00:3487:1b00:fc9c:738b:219c:bafe) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-11 00:33:37 +0100 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds) |
| 2025-12-11 00:42:35 +0100 | sindu | (~sindu@2.148.32.207.tmi.telenormobil.no) (Ping timeout: 240 seconds) |
| 2025-12-11 00:44:15 +0100 | Pozyomka | (~pyon@user/pyon) (Quit: brb!) |
| 2025-12-11 00:45:16 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Read error: Connection reset by peer) |
| 2025-12-11 00:45:18 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2025-12-11 00:46:06 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-11 00:47:02 +0100 | jmcantrell_ | jmcantrell |
| 2025-12-11 00:47:30 +0100 | notzmv | (~umar@user/notzmv) notzmv |
| 2025-12-11 00:51:52 +0100 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
| 2025-12-11 00:52:19 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 00:56:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 01:07:09 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Read error: Connection reset by peer) |
| 2025-12-11 01:08:06 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 01:12:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-11 01:15:08 +0100 | pabs3 | (~pabs3@user/pabs3) (Read error: Connection reset by peer) |
| 2025-12-11 01:16:00 +0100 | pabs3 | (~pabs3@user/pabs3) pabs3 |
| 2025-12-11 01:23:04 +0100 | p3n | (~p3n@217.198.124.246) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2025-12-11 01:23:11 +0100 | p3n_ | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) |
| 2025-12-11 01:23:52 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 01:28:48 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-12-11 01:33:09 +0100 | Sgeo__ | (~Sgeo@user/sgeo) Sgeo |
| 2025-12-11 01:34:31 +0100 | ycp | (~znc@user/dragestil) (Ping timeout: 244 seconds) |
| 2025-12-11 01:35:14 +0100 | ycp | (~znc@user/dragestil) dragestil |
| 2025-12-11 01:36:04 +0100 | Sgeo_ | (~Sgeo@user/sgeo) (Ping timeout: 244 seconds) |
| 2025-12-11 01:39:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 01:40:49 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-11 01:41:02 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-11 01:41:58 +0100 | larsivi | (~larsivi@user/larsivi) (Ping timeout: 246 seconds) |
| 2025-12-11 01:44:04 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-11 01:47:55 +0100 | Raito_Bezarius | (~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) (Ping timeout: 246 seconds) |
| 2025-12-11 01:48:27 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-11 01:51:04 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-11 01:55:15 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 01:59:56 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-12-11 02:02:28 +0100 | Raito_Bezarius | (~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) Raito_Bezarius |
| 2025-12-11 02:05:04 +0100 | jle` | (~jle`@2603:8001:3b00:11:ed74:b35d:c320:7e16) (Ping timeout: 246 seconds) |
| 2025-12-11 02:05:59 +0100 | jle` | (~jle`@2603:8001:3b00:11:a23f:f454:6842:2ec4) jle` |
| 2025-12-11 02:09:09 +0100 | hsw | (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) (Quit: Leaving) |
| 2025-12-11 02:09:16 +0100 | xff0x | (~xff0x@2405:6580:b080:900:9fc6:fc26:b514:683b) (Ping timeout: 246 seconds) |
| 2025-12-11 02:10:17 +0100 | Tuplanolla | (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Quit: Leaving.) |
| 2025-12-11 02:10:41 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 02:15:15 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 02:19:20 +0100 | larsivi | (~larsivi@user/larsivi) larsivi |
| 2025-12-11 02:24:46 +0100 | divlamir_ | (~divlamir@user/divlamir) divlamir |
| 2025-12-11 02:24:50 +0100 | divlamir | (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 2025-12-11 02:25:38 +0100 | divlamir_ | divlamir |
| 2025-12-11 02:26:24 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 02:26:25 +0100 | acidjnk | (~acidjnk@p200300d6e717192391252480cf04477b.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 2025-12-11 02:28:08 +0100 | bggd_ | (~bgg@2a01:e0a:fd5:f510:327d:b50f:5899:99de) |
| 2025-12-11 02:30:27 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-11 02:30:40 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-11 02:31:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-11 02:32:46 +0100 | califax | (~califax@user/califx) (Remote host closed the connection) |
| 2025-12-11 02:34:29 +0100 | omidmash5 | (~omidmash@user/omidmash) omidmash |
| 2025-12-11 02:36:31 +0100 | omidmash | (~omidmash@user/omidmash) (Ping timeout: 244 seconds) |
| 2025-12-11 02:36:31 +0100 | omidmash5 | omidmash |
| 2025-12-11 02:40:46 +0100 | trickard_ | trickard |
| 2025-12-11 02:42:14 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 02:43:38 +0100 | califax | (~califax@user/califx) califx |
| 2025-12-11 02:45:22 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Remote host closed the connection) |
| 2025-12-11 02:45:38 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2025-12-11 02:46:57 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-12-11 02:49:31 +0100 | timide | (~timide@user/timide) (Ping timeout: 246 seconds) |
| 2025-12-11 02:49:53 +0100 | sp1ff` | (~user@2601:1c2:4c00:6820::c593) (Remote host closed the connection) |
| 2025-12-11 02:55:08 +0100 | ephemient | (uid407513@user/ephemient) (Quit: Connection closed for inactivity) |
| 2025-12-11 02:58:01 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 02:58:32 +0100 | timide | (~timide@user/timide) timide |
| 2025-12-11 03:01:21 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2025-12-11 03:02:31 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 03:05:00 +0100 | bggd_ | (~bgg@2a01:e0a:fd5:f510:327d:b50f:5899:99de) (Remote host closed the connection) |
| 2025-12-11 03:08:19 +0100 | <Pozyomka> | Why is does XMonad.keys have type “XConfig l -> XConfig Layout -> Data.Map.Internal.Map (ButtonMask, KeySym) (X ())”? The first XConfig, I can understand, it's the XConfig record we're projecting from. But why would we need a second record? |
| 2025-12-11 03:10:16 +0100 | spew | (~spew@user/spew) (Quit: nyaa~) |
| 2025-12-11 03:11:20 +0100 | <geekosaur> | because it's not a Map, it's a function that produces a Map. the function is passed the current configuration, mostly so it can extract the modMask |
| 2025-12-11 03:12:14 +0100 | <geekosaur> | https://github.com/xmonad/xmonad/blob/master/src/XMonad/Config.hs#L181-L243 |
| 2025-12-11 03:13:06 +0100 | <geekosaur> | also note like 194 which extracts the current layoutHook and hard sets it to reinitialize layouts |
| 2025-12-11 03:13:47 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 03:13:50 +0100 | <geekosaur> | and line 233 which extracts the workspaces |
| 2025-12-11 03:18:13 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-11 03:18:55 +0100 | myxos | (~myxos@wsip-70-166-126-146.ph.ph.cox.net) (Ping timeout: 264 seconds) |
| 2025-12-11 03:23:57 +0100 | <Pozyomka> | Ah, thanks... I guess I just find it hard to reason about non-positive types: “Part of the data of a configuration is a function that takes another configuration...” |
| 2025-12-11 03:27:19 +0100 | myxos | (~myxos@wsip-70-166-126-146.ph.ph.cox.net) myxokephale |
| 2025-12-11 03:29:17 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 03:35:01 +0100 | <geekosaur> | it takes the same configuration. there's just no way to relay the configuration it came from to it automatically, so xmonad has to do `keys conf conf` |
| 2025-12-11 03:35:35 +0100 | <geekosaur> | (hypothetically you could even call the function directly, but I can't think of a good reason to do so. xmonad users have surprised me in the past, though) |
| 2025-12-11 03:35:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 03:37:49 +0100 | karenw | (~karenw@user/karenw) (Ping timeout: 264 seconds) |
| 2025-12-11 03:44:07 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 264 seconds) |
| 2025-12-11 03:45:54 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2025-12-11 03:47:20 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 03:51:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 03:52:05 +0100 | trickard | (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-11 03:52:18 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-11 03:57:35 +0100 | rekahsoft | (~rekahsoft@70.51.99.245) (Ping timeout: 240 seconds) |
| 2025-12-11 03:58:00 +0100 | Lycurgus | (~juan@user/Lycurgus) Lycurgus |
| 2025-12-11 04:01:02 +0100 | hsw | (~hsw@112-104-86-252.adsl.dynamic.seed.net.tw) hsw |
| 2025-12-11 04:02:43 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 04:06:50 +0100 | ryanbooker | (uid4340@id-4340.hampstead.irccloud.com) ryanbooker |
| 2025-12-11 04:07:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-11 04:09:26 +0100 | img | (~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2025-12-11 04:10:39 +0100 | img | (~img@user/img) img |
| 2025-12-11 04:11:55 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 240 seconds) |
| 2025-12-11 04:14:04 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2025-12-11 04:17:22 +0100 | nschoe | (~nschoe@82-65-202-30.subs.proxad.net) (Ping timeout: 246 seconds) |
| 2025-12-11 04:18:27 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 04:23:15 +0100 | nschoe | (~nschoe@82-65-202-30.subs.proxad.net) nschoe |
| 2025-12-11 04:23:19 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-11 04:34:12 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 04:35:55 +0100 | Lycurgus | (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 2025-12-11 04:38:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 04:41:55 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-11 04:42:08 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-11 04:49:54 +0100 | omidmash | (~omidmash@user/omidmash) (Quit: The Lounge - https://thelounge.chat) |
| 2025-12-11 04:50:01 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 04:54:19 +0100 | omidmash | (~omidmash@user/omidmash) omidmash |
| 2025-12-11 04:54:28 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-11 05:05:30 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 05:10:15 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 05:21:18 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 05:25:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 05:33:17 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2025-12-11 05:37:05 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 05:41:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 05:47:17 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 05:52:13 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-11 05:52:55 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 2025-12-11 05:56:53 +0100 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2025-12-11 06:00:42 +0100 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 244 seconds) |
| 2025-12-11 06:03:05 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 06:07:15 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 06:14:45 +0100 | finsternis | (~X@23.226.237.192) (Read error: Connection reset by peer) |
| 2025-12-11 06:15:38 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2025-12-11 06:16:36 +0100 | ryanbooker | (uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 2025-12-11 06:18:32 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 06:20:55 +0100 | trickard_ | trickard |
| 2025-12-11 06:24:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 06:26:47 +0100 | deptype | (~deptype@2406:b400:3a:9d2f:fd44:bbca:9ef1:b046) |
| 2025-12-11 06:27:03 +0100 | <iqubic> | If I have a `Map k v` is there a function of type `Map k v -> k -> Bool` that tells me if said key is present in the Map? |
| 2025-12-11 06:27:41 +0100 | <iqubic> | It's member and notMemember that I want. |
| 2025-12-11 06:36:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 06:41:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 06:50:53 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Ping timeout: 252 seconds) |
| 2025-12-11 06:51:30 +0100 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2025-12-11 06:52:32 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 06:52:49 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2025-12-11 06:54:35 +0100 | iqubic | (~sophia@2601:602:9203:1660:767a:e6b6:2f4b:e37e) (Remote host closed the connection) |
| 2025-12-11 06:54:43 +0100 | <Leary> | @tell Wygyulmage Looks like it's because it's defined in terms of `deleteBy`, but with the arguments flipped to be consistent with `\\`. I wouldn't call that a /deep/ reason though, and you could perhaps change it by complaining at the CLC. |
| 2025-12-11 06:54:43 +0100 | <lambdabot> | Consider it noted. |
| 2025-12-11 06:56:58 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-11 07:07:59 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 07:10:16 +0100 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 246 seconds) |
| 2025-12-11 07:12:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 07:14:14 +0100 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2025-12-11 07:19:14 +0100 | ephemient | (uid407513@user/ephemient) ephemient |
| 2025-12-11 07:19:41 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2025-12-11 07:23:43 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 07:28:40 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-12-11 07:32:46 +0100 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2025-12-11 07:34:27 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2025-12-11 07:34:29 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
| 2025-12-11 07:39:30 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 07:41:20 +0100 | <int-e> | Leary: you had an extra 'y' |
| 2025-12-11 07:41:54 +0100 | <int-e> | (I noticed because I tried finding the question) |
| 2025-12-11 07:43:35 +0100 | haritz | (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2025-12-11 07:44:08 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 07:45:44 +0100 | <Leary> | Geh. That's what happens when no tab-complete. |
| 2025-12-11 07:47:11 +0100 | <Leary> | @clear-messages |
| 2025-12-11 07:47:11 +0100 | <lambdabot> | Messages cleared. |
| 2025-12-11 07:47:27 +0100 | <Leary> | @tell Wygulmage Looks like it's because it's defined in terms of `deleteBy`, but with the arguments flipped to be consistent with `\\`. I wouldn't call that a /deep/ reason though, and you could perhaps change it by complaining at the CLC. |
| 2025-12-11 07:47:27 +0100 | <lambdabot> | Consider it noted. |
| 2025-12-11 07:47:52 +0100 | acidjnk | (~acidjnk@p200300d6e717192391252480cf04477b.dip0.t-ipconnect.de) acidjnk |
| 2025-12-11 07:50:09 +0100 | <int-e> | It's been that way since at least Haskell 98 though. (On the flip side, I don't remember ever using that function.) |
| 2025-12-11 07:52:23 +0100 | <int-e> | Changing the orientation of the predicate would be one of the more insidious changes you could push onto users, since the code will still compile. |
| 2025-12-11 07:53:30 +0100 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2025-12-11 07:54:41 +0100 | <Leary> | Yeah, it probably won't happen. That said, it's probably not actually hard to warn/PR every single user on hackage. |
| 2025-12-11 07:59:12 +0100 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 2025-12-11 08:02:54 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-11 08:07:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-12-11 08:20:02 +0100 | jrm2 | (~jrm@user/jrm) jrm |
| 2025-12-11 08:20:16 +0100 | jrm | (~jrm@user/jrm) (Ping timeout: 246 seconds) |
| 2025-12-11 08:21:38 +0100 | jrm2 | jrm |
| 2025-12-11 08:46:17 +0100 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
| 2025-12-11 08:48:29 +0100 | lucabtz | (~lucabtz@user/lucabtz) lucabtz |
| 2025-12-11 08:49:12 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2025-12-11 08:53:07 +0100 | ft | (~ft@p508db844.dip0.t-ipconnect.de) (Quit: leaving) |
| 2025-12-11 08:56:50 +0100 | FirefoxDeHuk | (~FirefoxDe@user/FirefoxDeHuk) FirefoxDeHuk |
| 2025-12-11 08:58:02 +0100 | j1n37 | (~j1n37@user/j1n37) (Quit: Ich bin der Welt abhanden gekommen) |
| 2025-12-11 08:59:43 +0100 | tolt_ | (~weechat-h@li219-154.members.linode.com) (Ping timeout: 240 seconds) |
| 2025-12-11 08:59:45 +0100 | emmanuelux_ | (~emmanuelu@user/emmanuelux) emmanuelux |
| 2025-12-11 08:59:55 +0100 | haskellbridge_ | (~hackager@96.28.224.214) hackager |
| 2025-12-11 08:59:55 +0100 | ChanServ | +v haskellbridge_ |
| 2025-12-11 09:00:12 +0100 | j1n37 | (~j1n37@user/j1n37) j1n37 |
| 2025-12-11 09:00:50 +0100 | tolt | (~weechat-h@li219-154.members.linode.com) tolt |
| 2025-12-11 09:02:00 +0100 | jrm2 | (~jrm@user/jrm) jrm |
| 2025-12-11 09:02:40 +0100 | pabs3 | (~pabs3@user/pabs3) (Killed (platinum.libera.chat (Nickname regained by services))) |
| 2025-12-11 09:02:44 +0100 | pabs3 | (~pabs3@user/pabs3) pabs3 |
| 2025-12-11 09:02:48 +0100 | takuan_dozo | (~takuan@d8D86B9E9.access.telenet.be) |
| 2025-12-11 09:04:15 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
| 2025-12-11 09:04:15 +0100 | itaipu | (~itaipu@168.121.97.28) (Ping timeout: 240 seconds) |
| 2025-12-11 09:04:15 +0100 | haskellbridge | (~hackager@96.28.224.214) (Ping timeout: 240 seconds) |
| 2025-12-11 09:04:16 +0100 | jrm | (~jrm@user/jrm) (Ping timeout: 240 seconds) |
| 2025-12-11 09:04:16 +0100 | takuan | (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 240 seconds) |
| 2025-12-11 09:04:16 +0100 | jrm2 | jrm |
| 2025-12-11 09:04:31 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 240 seconds) |
| 2025-12-11 09:04:35 +0100 | FANTOM | (~fantom@90.244.161.115) (Ping timeout: 240 seconds) |
| 2025-12-11 09:04:47 +0100 | haskellbridge_ | haskellbridge |
| 2025-12-11 09:06:33 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2025-12-11 09:06:59 +0100 | FirefoxDeHuk | (~FirefoxDe@user/FirefoxDeHuk) (Quit: Client closed) |
| 2025-12-11 09:08:00 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2025-12-11 09:08:17 +0100 | tromp | (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) |
| 2025-12-11 09:08:58 +0100 | SheRejoined | (haveident@libera/staff/she/her) She |
| 2025-12-11 09:10:16 +0100 | She | (haveident@libera/staff/she/her) (Read error: Connection reset by peer) |
| 2025-12-11 09:10:16 +0100 | SheRejoined | She |
| 2025-12-11 09:10:53 +0100 | FANTOM | (~fantom@90.244.161.115) |
| 2025-12-11 09:13:34 +0100 | itaipu | (~itaipu@168.121.97.28) itaipu |
| 2025-12-11 09:15:19 +0100 | arahael | (~wetfoot@user/arahael) (Ping timeout: 265 seconds) |
| 2025-12-11 09:18:53 +0100 | arahael | (~wetfoot@user/arahael) arahael |
| 2025-12-11 09:19:49 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 264 seconds) |
| 2025-12-11 09:20:01 +0100 | trickard | (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-11 09:20:14 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-11 09:20:31 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
| 2025-12-11 09:26:49 +0100 | chencheng57 | (~chencheng@user/chencheng) chencheng |
| 2025-12-11 09:28:18 +0100 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 260 seconds) |
| 2025-12-11 09:29:09 +0100 | chencheng57 | (~chencheng@user/chencheng) (Client Quit) |
| 2025-12-11 09:31:41 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 2025-12-11 09:35:46 +0100 | chele | (~chele@user/chele) chele |
| 2025-12-11 09:43:38 +0100 | Sgeo__ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2025-12-11 09:55:20 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 10:09:48 +0100 | emmanuelux_ | (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 2025-12-11 10:13:55 +0100 | pabs3 | (~pabs3@user/pabs3) (Read error: Connection reset by peer) |
| 2025-12-11 10:14:52 +0100 | pabs3 | (~pabs3@user/pabs3) pabs3 |
| 2025-12-11 10:18:37 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-11 10:18:51 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-11 10:20:03 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-11 10:21:52 +0100 | gmg | (~user@user/gehmehgeh) gehmehgeh |
| 2025-12-11 10:24:44 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) kuribas |
| 2025-12-11 10:27:00 +0100 | olivial | (~benjaminl@user/benjaminl) (Ping timeout: 245 seconds) |
| 2025-12-11 10:37:47 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
| 2025-12-11 10:40:38 +0100 | arahael | (~wetfoot@user/arahael) (Ping timeout: 260 seconds) |
| 2025-12-11 10:41:14 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
| 2025-12-11 10:49:03 +0100 | olivial | (~benjaminl@user/benjaminl) benjaminl |
| 2025-12-11 10:53:11 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 11:00:02 +0100 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 2025-12-11 11:00:02 +0100 | haritz | (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 2025-12-11 11:00:02 +0100 | haritz | (~hrtz@user/haritz) haritz |
| 2025-12-11 11:01:31 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 264 seconds) |
| 2025-12-11 11:02:04 +0100 | tromp | (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-11 11:02:48 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
| 2025-12-11 11:03:15 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) (Ping timeout: 240 seconds) |
| 2025-12-11 11:03:31 +0100 | arahael | (~wetfoot@user/arahael) arahael |
| 2025-12-11 11:05:25 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 264 seconds) |
| 2025-12-11 11:06:08 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-11 11:08:51 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-11 11:09:15 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds) |
| 2025-12-11 11:09:15 +0100 | ljdarj1 | ljdarj |
| 2025-12-11 11:09:51 +0100 | tromp | (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) |
| 2025-12-11 11:14:28 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 11:16:33 +0100 | yuuta | (~YuutaW@infornography.yta.moe) (Ping timeout: 252 seconds) |
| 2025-12-11 11:18:37 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-11 11:18:46 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 246 seconds) |
| 2025-12-11 11:18:52 +0100 | Googulator | (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 2025-12-11 11:20:15 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds) |
| 2025-12-11 11:20:15 +0100 | ljdarj1 | ljdarj |
| 2025-12-11 11:30:37 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 11:34:55 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 245 seconds) |
| 2025-12-11 11:37:27 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 11:48:22 +0100 | YuutaW | (~YuutaW@2404:f4c0:f9c3:502::100:6eef) YuutaW |
| 2025-12-11 11:49:15 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 240 seconds) |
| 2025-12-11 11:55:41 +0100 | Googulator85 | (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 2025-12-11 11:55:43 +0100 | Googulator | (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-11 11:58:52 +0100 | xff0x | (~xff0x@2405:6580:b080:900:bfb6:36fd:6718:66b7) |
| 2025-12-11 12:06:04 +0100 | Square | (~Square4@user/square) Square |
| 2025-12-11 12:15:35 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-11 12:25:43 +0100 | Googulator85 | (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-11 12:25:50 +0100 | Googulator48 | (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 2025-12-11 12:29:22 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 12:31:54 +0100 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 2025-12-11 12:34:39 +0100 | jreicher | (~user@user/jreicher) (Quit: brb) |
| 2025-12-11 12:38:13 +0100 | __monty__ | (~toonn@user/toonn) toonn |
| 2025-12-11 12:43:41 +0100 | euphores | (~SASL_euph@user/euphores) euphores |
| 2025-12-11 12:45:01 +0100 | jreicher | (~user@user/jreicher) jreicher |
| 2025-12-11 12:51:20 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
| 2025-12-11 12:58:03 +0100 | yin | (~zero@user/zero) (Remote host closed the connection) |
| 2025-12-11 13:00:14 +0100 | Jackneill_ | (~Jackneill@178-164-177-109.pool.digikabel.hu) |
| 2025-12-11 13:02:42 +0100 | Jackneill | (~Jackneill@94-21-15-191.pool.digikabel.hu) (Ping timeout: 252 seconds) |
| 2025-12-11 13:06:12 +0100 | yin | (~zero@user/zero) zero |
| 2025-12-11 13:08:25 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 264 seconds) |
| 2025-12-11 13:10:35 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-11 13:10:48 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-11 13:17:05 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 13:22:52 +0100 | tromp | (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-11 13:24:18 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
| 2025-12-11 13:25:42 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-11 13:25:55 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-11 13:30:06 +0100 | karenw | (~karenw@user/karenw) karenw |
| 2025-12-11 13:30:18 +0100 | karenw | (~karenw@user/karenw) (Remote host closed the connection) |
| 2025-12-11 13:31:20 +0100 | karenw | (~karenw@user/karenw) karenw |
| 2025-12-11 13:35:14 +0100 | comerijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 13:36:44 +0100 | fp | (~Thunderbi@2001:708:20:1406::10c5) fp |
| 2025-12-11 13:38:04 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 246 seconds) |
| 2025-12-11 13:39:16 +0100 | bggd_ | (~bgg@2a01:e0a:fd5:f510:fb9e:194f:f1d5:eb88) |
| 2025-12-11 13:45:41 +0100 | Googulator63 | (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 2025-12-11 13:45:49 +0100 | Googulator48 | (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-11 13:47:14 +0100 | yin | (~zero@user/zero) (Remote host closed the connection) |
| 2025-12-11 13:49:01 +0100 | yin | (~zero@user/zero) zero |
| 2025-12-11 13:54:57 +0100 | yin | (~zero@user/zero) (Remote host closed the connection) |
| 2025-12-11 13:55:20 +0100 | yin | (~zero@user/zero) zero |
| 2025-12-11 14:05:29 +0100 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2025-12-11 14:07:30 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
| 2025-12-11 14:12:17 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2025-12-11 14:12:37 +0100 | comerijn | (~merijn@77.242.116.146) (Ping timeout: 264 seconds) |
| 2025-12-11 14:12:48 +0100 | Pozyomka | (~pyon@user/pyon) pyon |
| 2025-12-11 14:13:57 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 14:15:54 +0100 | Googulator87 | (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 2025-12-11 14:16:11 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-11 14:16:25 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-11 14:17:43 +0100 | Googulator63 | (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 2025-12-11 14:34:09 +0100 | cawfee | (root@2401:c080:3800:3460::babe) (Quit: WeeChat 4.7.1) |
| 2025-12-11 14:34:55 +0100 | cawfee | (root@2401:c080:3800:3460::babe) qjqqyy |
| 2025-12-11 14:35:58 +0100 | cawfee | (root@2401:c080:3800:3460::babe) (Client Quit) |
| 2025-12-11 14:36:46 +0100 | cawfee | (root@2401:c080:3800:3460::babe) |
| 2025-12-11 14:41:47 +0100 | Googulator87 | (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Ping timeout: 272 seconds) |
| 2025-12-11 14:42:45 +0100 | weary-traveler | (~user@user/user363627) user363627 |
| 2025-12-11 14:49:40 +0100 | tromp | (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) |
| 2025-12-11 14:52:35 +0100 | Square | (~Square4@user/square) (Ping timeout: 240 seconds) |
| 2025-12-11 14:52:52 +0100 | fp | (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 256 seconds) |
| 2025-12-11 15:00:39 +0100 | fp | (~Thunderbi@wireless-86-50-140-30.open.aalto.fi) fp |
| 2025-12-11 15:03:28 +0100 | fp | (~Thunderbi@wireless-86-50-140-30.open.aalto.fi) (Remote host closed the connection) |
| 2025-12-11 15:06:43 +0100 | Googulator87 | (~Googulato@185.199.28.81) |
| 2025-12-11 15:09:05 +0100 | rekahsoft | (~rekahsoft@70.51.99.245) rekahsoft |
| 2025-12-11 15:13:14 +0100 | Enrico63 | (~Enrico63@host-212-171-79-170.retail.telecomitalia.it) Enrico63 |
| 2025-12-11 15:13:15 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-11 15:16:20 +0100 | Enrico63 | (~Enrico63@host-212-171-79-170.retail.telecomitalia.it) (Client Quit) |
| 2025-12-11 15:17:50 +0100 | fp | (~Thunderbi@2001:708:150:10::7e06) fp |
| 2025-12-11 15:18:53 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-12-11 15:22:00 +0100 | <pounce> | does anybody know if there's a name for Functor f => (k -> f a) -> (k -> b) -> (k -> f b)? kind of like blah f g x = f x $> g x |
| 2025-12-11 15:22:48 +0100 | Enrico63 | (~Enrico63@host-212-171-79-170.retail.telecomitalia.it) Enrico63 |
| 2025-12-11 15:25:39 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 15:29:57 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 250 seconds) |
| 2025-12-11 15:30:30 +0100 | <Leary> | pounce: Only `liftA2 ($>)`. |
| 2025-12-11 15:31:11 +0100 | Googulator87 | (~Googulato@185.199.28.81) (Ping timeout: 272 seconds) |
| 2025-12-11 15:33:24 +0100 | fp | (~Thunderbi@2001:708:150:10::7e06) (Ping timeout: 252 seconds) |
| 2025-12-11 15:33:58 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 15:34:23 +0100 | tremon | (~tremon@83.80.159.219) tremon |
| 2025-12-11 15:39:12 +0100 | <kuribas> | pounce: give it your own name :) |
| 2025-12-11 15:39:44 +0100 | fp | (~Thunderbi@2001:708:150:10::7e06) fp |
| 2025-12-11 15:41:35 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-11 15:42:11 +0100 | <kuribas> | I hate this error: Ambiguous type variable ‘a0’ arising from a use of ‘subQuery’ prevents the constraint ‘(ToQueryBuilder a0)’ from being solved. |
| 2025-12-11 15:42:14 +0100 | fp | (~Thunderbi@2001:708:150:10::7e06) (Remote host closed the connection) |
| 2025-12-11 15:42:33 +0100 | <kuribas> | There is nothing that stops ghc from creating a hole for a0, no? |
| 2025-12-11 15:42:39 +0100 | <kuribas> | This shouldn't be an error at all. |
| 2025-12-11 15:43:25 +0100 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2025-12-11 15:43:53 +0100 | <kuribas> | Well, with -fdefer-typed-holes |
| 2025-12-11 15:44:57 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 15:45:59 +0100 | <kuribas> | I would expect ghc to infer constraints as much as possible with holes, but create another hole when it cannot resolve them. |
| 2025-12-11 15:46:09 +0100 | <kuribas> | This would make working with typed holes so much better. |
| 2025-12-11 15:46:38 +0100 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2025-12-11 15:49:43 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 240 seconds) |
| 2025-12-11 15:53:57 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
| 2025-12-11 15:56:52 +0100 | merijn | (~merijn@77.242.116.146) merijn |
| 2025-12-11 16:03:33 +0100 | raym | (~ray@user/raym) raym |
| 2025-12-11 16:03:50 +0100 | fp | (~Thunderbi@130.233.70.102) fp |
| 2025-12-11 16:06:07 +0100 | fp | (~Thunderbi@130.233.70.102) (Client Quit) |
| 2025-12-11 16:06:21 +0100 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 2025-12-11 16:06:27 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
| 2025-12-11 16:08:31 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-12-11 16:08:44 +0100 | trickard_ | (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 2025-12-11 16:11:17 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 2025-12-11 16:12:11 +0100 | qqe | (~qqq@185.54.20.98) (Quit: Lost terminal) |
| 2025-12-11 16:12:41 +0100 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2025-12-11 16:16:31 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Ping timeout: 240 seconds) |
| 2025-12-11 16:17:01 +0100 | tromp | (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-12-11 16:17:13 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds) |
| 2025-12-11 16:19:36 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 252 seconds) |
| 2025-12-11 16:21:00 +0100 | deptype_ | (~deptype@2406:b400:3a:9d2f:fd44:bbca:9ef1:b046) |
| 2025-12-11 16:23:42 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
| 2025-12-11 16:24:28 +0100 | Square | (~Square4@user/square) Square |
| 2025-12-11 16:24:54 +0100 | Enrico63 | (~Enrico63@host-212-171-79-170.retail.telecomitalia.it) (Quit: Client closed) |
| 2025-12-11 16:26:04 +0100 | jmcantrell_ | (~weechat@user/jmcantrell) (Ping timeout: 246 seconds) |
| 2025-12-11 16:42:12 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
| 2025-12-11 16:42:54 +0100 | <tomsmeding> | kuribas: the context "I want to work with -fdefer-typed-holes" is very important there :p |
| 2025-12-11 16:43:12 +0100 | <kuribas> | right :) |
| 2025-12-11 16:46:02 +0100 | <merijn> | Of course you do |
| 2025-12-11 16:46:17 +0100 | <merijn> | -fdefer-typed-holes is the greatest flag ever and whoever implemented it was a visionary genius |
| 2025-12-11 16:46:29 +0100 | <tomsmeding> | well that turns this from "GHC's diagnostics are bad" into "-fdefer-typed-holes is not strong enough" |
| 2025-12-11 16:46:39 +0100 | <tomsmeding> | which is a completely different thing, namely a feature request instead of a bug report |
| 2025-12-11 16:46:55 +0100 | <merijn> | (I missed the context, btw) |
| 2025-12-11 16:47:32 +0100 | <kuribas> | tomsmeding: A feature request I have been missing for 10 years or so :) |
| 2025-12-11 16:47:39 +0100 | tromp | (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) |
| 2025-12-11 16:49:00 +0100 | <kuribas> | merijn: it came from profo assistants, no? |
| 2025-12-11 16:49:02 +0100 | <kuribas> | proof |
| 2025-12-11 16:49:26 +0100 | <merijn> | kuribas: The ambiguous variable *is* an error and it cannot be solved |
| 2025-12-11 16:49:32 +0100 | <merijn> | holes don't help you there |
| 2025-12-11 16:50:22 +0100 | <kuribas> | If a0 is the type of a hole, I don't want an error. |
| 2025-12-11 16:50:43 +0100 | <merijn> | Can you pastebin an example? |
| 2025-12-11 16:50:59 +0100 | <kuribas> | I don't have an easy example right now. |
| 2025-12-11 16:51:19 +0100 | <merijn> | kuribas: It didn't come from proof assistants |
| 2025-12-11 16:51:23 +0100 | <merijn> | It was I, Dio! |
| 2025-12-11 16:51:37 +0100 | <kuribas> | ah right :) |
| 2025-12-11 16:51:46 +0100 | <kuribas> | Well, the hole thingy came from proof assistants, no? |
| 2025-12-11 16:52:10 +0100 | <kuribas> | "Typed holes are a powerful feature in GHC inspired by Agda. But what are typed holes, and how do they help us write code? " |
| 2025-12-11 16:52:10 +0100 | <merijn> | I saw -fdefer-type-errprs and I was like "man, that's useless. But also, it would be nice if I could run my code while it still had holes" |
| 2025-12-11 16:52:35 +0100 | <kuribas> | indeed! |
| 2025-12-11 16:53:08 +0100 | <kuribas> | And if you allow holes, why not allow missing constraints on those holes? |
| 2025-12-11 17:00:01 +0100 | deptype_ | (~deptype@2406:b400:3a:9d2f:fd44:bbca:9ef1:b046) (Quit: Leaving) |
| 2025-12-11 17:00:24 +0100 | deptype | (~deptype@2406:b400:3a:9d2f:fd44:bbca:9ef1:b046) (Read error: Connection reset by peer) |
| 2025-12-11 17:02:49 +0100 | <merijn> | kuribas: You could try and fix it. I hacked that flag together when I barely knew haskell :p |
| 2025-12-11 17:03:37 +0100 | <haskellbridge> | <matti palli> Allowing missing constraints is a bit problematic, since constraints is how we generate code. Indeed, holes are just an “undefined variable” error with a fancy message |
| 2025-12-11 17:03:47 +0100 | Axman6 | (~Axman6@user/axman6) (Remote host closed the connection) |
| 2025-12-11 17:04:17 +0100 | <kuribas> | How are constraints "generating code"? |
| 2025-12-11 17:04:40 +0100 | <kuribas> | constraints are just implicits. |
| 2025-12-11 17:05:15 +0100 | yin | (~zero@user/zero) (Remote host closed the connection) |
| 2025-12-11 17:05:26 +0100 | <kuribas> | And the point is that the hole is not just "an error", but allows you to fill in the rest of the program, while leave out details. |
| 2025-12-11 17:05:30 +0100 | yin | (~zero@user/zero) zero |
| 2025-12-11 17:05:30 +0100 | <haskellbridge> | <matti palli> that’s how the typechecker works, you solve constraint by emitting a “proof” that the constraint holds, and that contains the dictionary which contains the code |
| 2025-12-11 17:06:05 +0100 | <kuribas> | You don't emit a "proof", the type inference does a proof search to find the right instance. |
| 2025-12-11 17:06:46 +0100 | <haskellbridge> | <matti palli> yeah, and the right instance is the proof |
| 2025-12-11 17:07:39 +0100 | <haskellbridge> | <matti palli> and it’s simultaneously the dictionary which contains the code, afaiu |
| 2025-12-11 17:08:30 +0100 | <kuribas> | haskell doesn't really have "proofs". |
| 2025-12-11 17:08:36 +0100 | <kuribas> | Due to bottom. |
| 2025-12-11 17:09:33 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod |
| 2025-12-11 17:10:09 +0100 | <kuribas> | Even so, proof assistants like agda and idris allow you to have holes as proofs. |
| 2025-12-11 17:10:15 +0100 | <kuribas> | Then they are just "assumptions". |
| 2025-12-11 17:10:15 +0100 | <lucabtz> | i remember a video of tsoding on youtube referring to implementing instances like the functor instance as "proving" something is a functor |
| 2025-12-11 17:10:15 +0100 | <haskellbridge> | <matti palli> yeah sure, you can emit a “proof” that just contains error |
| 2025-12-11 17:10:58 +0100 | <haskellbridge> | <matti palli> what I mean is that you solve the constraint and emit a witness that is the dictionary |
| 2025-12-11 17:11:17 +0100 | <kuribas> | That's how large proofs are done, you treat some parts as "assumptions", and proof them later. Or they turn out to be false, and you have to abort the whole proof (or find another proof). |
| 2025-12-11 17:12:12 +0100 | <haskellbridge> | <matti palli> sure, you can do that with undefined or error as well. but then you have the issue of ambiguous type variables, as you’ve encountered |
| 2025-12-11 17:12:31 +0100 | <tomsmeding> | is the problem here that you want to be sure that the unsolvable constraint is _purely_ due to a typed hole? |
| 2025-12-11 17:12:43 +0100 | <kuribas> | yeah |
| 2025-12-11 17:12:56 +0100 | <tomsmeding> | because instantiating a typeclass dictionary argument with an error term is very much expressible in Core, at least |
| 2025-12-11 17:13:22 +0100 | <tomsmeding> | it's just hard to draw the line between an arbitrary unsolved constraint and one that is "intuitively" part of the hole |
| 2025-12-11 17:13:43 +0100 | <tomsmeding> | and replacing arbitrary unsolved constraints with errors (and thus not stopping compilation for them) is rather against the idea of -fdefer-typed-holes |
| 2025-12-11 17:13:54 +0100 | <kuribas> | tomsmeding: isn't that use a graph on the typeclass dependencies? |
| 2025-12-11 17:14:16 +0100 | <tomsmeding> | perhaps, but I expect you're going to have a lot of spurious dependencies |
| 2025-12-11 17:14:23 +0100 | <tomsmeding> | also, the graph needs to include type variables |
| 2025-12-11 17:16:03 +0100 | <tomsmeding> | one thing that's probably implementable (I say without having ever looked at the GHC typechecker) is instantiating any ambiguous unification variable with a special type such that unsolved constraints that mention that special type get magically solved with an error |
| 2025-12-11 17:16:13 +0100 | <tomsmeding> | but that would be -fdefer-type-errors behaviour, not -fdefer-typed-holes |
| 2025-12-11 17:16:59 +0100 | <kuribas> | tomsmeding: the hole gives rise to a type variable, which can be either unified with something, or remains "ambiguous". In the latter case you can trace which type classes depend on the ambiguous variable, no? |
| 2025-12-11 17:17:07 +0100 | <haskellbridge> | <matti palli> You could get there by just giving a more specific type to the hole "_ :: blah", resolving the ambiguity |
| 2025-12-11 17:17:12 +0100 | <tomsmeding> | "the hole gives rise to a type variable" is not a thing |
| 2025-12-11 17:17:30 +0100 | <tomsmeding> | every term gives rise to potentially multiple unification variables, and a lot of those are equal |
| 2025-12-11 17:17:44 +0100 | <tomsmeding> | you can track dependencies of everything, but that likely slows down type checking significantly |