| 2026-04-10 00:03:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-10 00:04:15 +0000 | uli-fem | (~uli-fem@115.128.112.118) |
| 2026-04-10 00:04:21 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 246 seconds) |
| 2026-04-10 00:11:42 +0000 | uli-fem | (~uli-fem@115.128.112.118) (Ping timeout: 255 seconds) |
| 2026-04-10 00:14:04 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 00:18:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 00:25:52 +0000 | uli-fem | (~uli-fem@115.128.112.118) |
| 2026-04-10 00:29:26 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 00:30:55 +0000 | uli-fem | (~uli-fem@115.128.112.118) (Ping timeout: 272 seconds) |
| 2026-04-10 00:33:40 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 00:38:41 +0000 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2026-04-10 00:44:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 00:51:30 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-10 00:57:27 +0000 | slomp | (~slomp@47-158-212-88.lsan.ca.frontiernet.net) (Read error: Connection reset by peer) |
| 2026-04-10 00:59:30 +0000 | Square | (~Square4@user/square) (Ping timeout: 244 seconds) |
| 2026-04-10 01:00:19 +0000 | slomp | (~slomp@47-158-212-88.lsan.ca.frontiernet.net) |
| 2026-04-10 01:00:25 +0000 | xff0x | (~xff0x@ai112096.d.east.v6connect.net) (Ping timeout: 248 seconds) |
| 2026-04-10 01:02:33 +0000 | _d0t_ | (~{-d0t-}@user/-d0t-/x-7915216) {-d0t-} |
| 2026-04-10 01:02:42 +0000 | _d0t | (~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 248 seconds) |
| 2026-04-10 01:02:42 +0000 | _d0t_ | _d0t |
| 2026-04-10 01:02:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 01:04:41 +0000 | tremon | (~tremon@83.80.159.219) (Quit: getting boxed in) |
| 2026-04-10 01:07:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-10 01:09:50 +0000 | slomp_ | (~slomp@47-158-212-88.lsan.ca.frontiernet.net) |
| 2026-04-10 01:12:41 +0000 | slomp | (~slomp@47-158-212-88.lsan.ca.frontiernet.net) (Ping timeout: 248 seconds) |
| 2026-04-10 01:14:54 +0000 | slomp | (~slomp@47-158-198-45.lsan.ca.frontiernet.net) |
| 2026-04-10 01:17:35 +0000 | slomp_ | (~slomp@47-158-212-88.lsan.ca.frontiernet.net) (Ping timeout: 244 seconds) |
| 2026-04-10 01:18:14 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 01:22:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 01:34:41 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 01:39:12 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-04-10 01:55:39 +0000 | slomp | (~slomp@47-158-198-45.lsan.ca.frontiernet.net) (Ping timeout: 255 seconds) |
| 2026-04-10 01:56:21 +0000 | uli-fem | (~uli-fem@115.128.112.118) |
| 2026-04-10 01:57:53 +0000 | slomp | (~slomp@47-158-198-45.lsan.ca.frontiernet.net) |
| 2026-04-10 02:03:45 +0000 | uli-fem | (~uli-fem@115.128.112.118) (Ping timeout: 255 seconds) |
| 2026-04-10 02:03:46 +0000 | haskellbridge | (~hackager@96.28.224.214) (Remote host closed the connection) |
| 2026-04-10 02:04:17 +0000 | haskellbridge | (~hackager@96.28.224.214) hackager |
| 2026-04-10 02:04:17 +0000 | ChanServ | +v haskellbridge |
| 2026-04-10 02:05:04 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-04-10 02:05:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 02:07:48 +0000 | slomp | (~slomp@47-158-198-45.lsan.ca.frontiernet.net) (Quit: Lost terminal) |
| 2026-04-10 02:10:04 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-04-10 02:10:50 +0000 | slomp | (~slomp@47-158-198-45.lsan.ca.frontiernet.net) |
| 2026-04-10 02:15:28 +0000 | m1dnight_ | (~m1dnight@d8D861A17.access.telenet.be) (Ping timeout: 256 seconds) |
| 2026-04-10 02:18:18 +0000 | uli-fem | (~uli-fem@115.128.112.118) |
| 2026-04-10 02:18:25 +0000 | m1dnight_ | (~m1dnight@d8D861A17.access.telenet.be) m1dnight |
| 2026-04-10 02:23:06 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 02:23:49 +0000 | slomp_ | (~slomp@47-158-199-90.lsan.ca.frontiernet.net) |
| 2026-04-10 02:26:26 +0000 | slomp | (~slomp@47-158-198-45.lsan.ca.frontiernet.net) (Ping timeout: 248 seconds) |
| 2026-04-10 02:29:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 02:40:17 +0000 | EvanR | (~EvanR@user/evanr) (Quit: Leaving) |
| 2026-04-10 02:41:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 02:41:50 +0000 | EvanR | (~EvanR@user/evanr) EvanR |
| 2026-04-10 02:45:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 02:56:30 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 03:00:00 +0000 | krei-se | (~krei-se@p5b1642b0.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
| 2026-04-10 03:00:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 03:03:11 +0000 | krei-se | (~krei-se@p5b15768c.dip0.t-ipconnect.de) krei-se |
| 2026-04-10 03:11:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 03:16:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-10 03:24:26 +0000 | Googulator85 | (~Googulato@94-21-172-213.pool.digikabel.hu) (Quit: Client closed) |
| 2026-04-10 03:24:51 +0000 | Googulator85 | (~Googulato@94-21-172-213.pool.digikabel.hu) |
| 2026-04-10 03:27:22 +0000 | divlamir | (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 2026-04-10 03:27:35 +0000 | divlamir | (~divlamir@user/divlamir) divlamir |
| 2026-04-10 03:42:39 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-04-10 03:44:27 +0000 | machinedgod | (~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 268 seconds) |
| 2026-04-10 03:47:18 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 268 seconds) |
| 2026-04-10 03:54:23 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-04-10 03:57:58 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 04:05:11 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-04-10 04:13:06 +0000 | tomboy65 | (~tomboy64@user/tomboy64) (Ping timeout: 248 seconds) |
| 2026-04-10 04:16:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 04:16:41 +0000 | tomboy64 | (~tomboy64@user/tomboy64) tomboy64 |
| 2026-04-10 04:20:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-04-10 04:31:21 +0000 | uli-fem | (~uli-fem@115.128.112.118) (Ping timeout: 255 seconds) |
| 2026-04-10 04:31:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 04:32:49 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-04-10 04:35:44 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-04-10 04:46:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 04:51:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 04:57:30 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 04:58:21 +0000 | michalz | (~michalz@185.246.207.215) |
| 2026-04-10 04:59:25 +0000 | squid64 | (~user@fsf/member/squid64) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.2)) |
| 2026-04-10 05:01:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 05:12:51 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 05:17:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 05:21:43 +0000 | acidjnk_new | (~acidjnk@p200300d6e700e53609e75ead6525121b.dip0.t-ipconnect.de) acidjnk |
| 2026-04-10 05:28:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 05:32:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-04-10 05:43:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 05:46:32 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 2026-04-10 05:46:56 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-04-10 05:48:50 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 05:54:09 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 2026-04-10 05:54:29 +0000 | ChaiTRex | (~ChaiTRex@user/chaitrex) ChaiTRex |
| 2026-04-10 05:55:07 +0000 | acidjnk_new | (~acidjnk@p200300d6e700e53609e75ead6525121b.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 2026-04-10 05:56:32 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-04-10 05:57:24 +0000 | uli-fem | (~uli-fem@115.128.112.118) |
| 2026-04-10 05:58:19 +0000 | CiaoSen | (~Jura@p549cbfb1.dip0.t-ipconnect.de) CiaoSen |
| 2026-04-10 05:58:30 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 05:59:35 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 244 seconds) |
| 2026-04-10 06:02:41 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 06:04:13 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) (Ping timeout: 276 seconds) |
| 2026-04-10 06:10:51 +0000 | mfc_kbs- | (~keibisoft@mail.keibisoft.com) (Quit: ZNC 1.9.0+deb2build3 - https://znc.in) |
| 2026-04-10 06:11:11 +0000 | mfc_kbs | (~keibisoft@mail.keibisoft.com) |
| 2026-04-10 06:13:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 06:18:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 06:24:21 +0000 | ft | (~ft@p508db287.dip0.t-ipconnect.de) (Quit: leaving) |
| 2026-04-10 06:24:36 +0000 | tusko | (~uwu@user/tusko) (Remote host closed the connection) |
| 2026-04-10 06:24:52 +0000 | tusko | (~uwu@user/tusko) tusko |
| 2026-04-10 06:28:48 +0000 | tusko | (~uwu@user/tusko) (Remote host closed the connection) |
| 2026-04-10 06:29:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 06:29:55 +0000 | tusko | (~uwu@user/tusko) tusko |
| 2026-04-10 06:32:21 +0000 | attlin | (~user@user/attlin) (Quit: Leaving) |
| 2026-04-10 06:33:47 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 06:36:34 +0000 | attlin | (~user@user/attlin) attlin |
| 2026-04-10 06:41:40 +0000 | czan | (~czan@user/mange) (Quit: Zzz...) |
| 2026-04-10 06:44:44 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 06:46:26 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:e029:fa8c:cb38:398f) (Read error: Connection reset by peer) |
| 2026-04-10 06:47:47 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:84a:b712:d1d0:a9d4) synchromesh |
| 2026-04-10 06:51:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 06:56:34 +0000 | constxd | (~constxd@user/constxd) (Quit: kiwi irc - hadmade client) |
| 2026-04-10 06:57:01 +0000 | constxd | (~constxd@user/constxd) constxd |
| 2026-04-10 06:59:32 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 07:01:02 +0000 | Googulator85 | (~Googulato@94-21-172-213.pool.digikabel.hu) (Ping timeout: 245 seconds) |
| 2026-04-10 07:01:30 +0000 | Milan_Vanca | (~milan@88.212.61.169) |
| 2026-04-10 07:04:40 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 2026-04-10 07:09:06 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) |
| 2026-04-10 07:13:18 +0000 | <gentauro> | if you use the `DuplicateRecordFields` language pragma (duplicate record fields). How do you specify you want to use `Foo { foo :: String }` from `FooBar { foo :: String, bar :: String}`? |
| 2026-04-10 07:14:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 07:19:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 07:20:42 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2026-04-10 07:25:09 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-10 07:30:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 07:30:34 +0000 | califax_ | (~califax@user/califx) califx |
| 2026-04-10 07:30:49 +0000 | califax | (~califax@user/califx) (Remote host closed the connection) |
| 2026-04-10 07:31:49 +0000 | califax_ | califax |
| 2026-04-10 07:34:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 07:39:35 +0000 | Enrico63 | (~Enrico63@host-212-171-80-94.retail.telecomitalia.it) Enrico63 |
| 2026-04-10 07:43:14 +0000 | arandombit | (~arandombi@user/arandombit) (Remote host closed the connection) |
| 2026-04-10 07:44:53 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:e481:bbc9:3363:2734) |
| 2026-04-10 07:44:53 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:e481:bbc9:3363:2734) (Changing host) |
| 2026-04-10 07:44:53 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-10 07:45:38 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 07:48:37 +0000 | Guest62 | (~Guest62@p200300ca8f075300066cfcebe99f05bc.dip0.t-ipconnect.de) |
| 2026-04-10 07:50:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-04-10 07:56:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 08:02:22 +0000 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2026-04-10 08:04:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-04-10 08:07:14 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 248 seconds) |
| 2026-04-10 08:09:09 +0000 | krei-se- | (~krei-se@2003:a:67f:b77c::c8c6) krei-se |
| 2026-04-10 08:09:12 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-04-10 08:09:36 +0000 | krei-se | (~krei-se@p5b15768c.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
| 2026-04-10 08:09:53 +0000 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2026-04-10 08:10:55 +0000 | karenw | (~karenw@user/karenw) (Ping timeout: 244 seconds) |
| 2026-04-10 08:12:08 +0000 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-04-10 08:13:20 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-04-10 08:15:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 08:22:10 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-04-10 08:23:53 +0000 | danza | (~danza@user/danza) danza |
| 2026-04-10 08:27:46 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 08:34:13 +0000 | <tomsmeding> | gentauro: https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/duplicate_record_fields.html#extens… |
| 2026-04-10 08:34:24 +0000 | <tomsmeding> | I think the part until 6.5.5.1 answers your question |
| 2026-04-10 08:34:28 +0000 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) szkl |
| 2026-04-10 08:39:46 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:84a:b712:d1d0:a9d4) (Ping timeout: 248 seconds) |
| 2026-04-10 08:42:04 +0000 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2026-04-10 08:42:23 +0000 | __monty__ | (~toonn@user/toonn) toonn |
| 2026-04-10 08:57:15 +0000 | GdeVolpi1 | (~GdeVolpia@user/GdeVolpiano) GdeVolpiano |
| 2026-04-10 08:58:58 +0000 | GdeVolpiano | (~GdeVolpia@user/GdeVolpiano) (Ping timeout: 244 seconds) |
| 2026-04-10 08:59:32 +0000 | arandombit | (~arandombi@user/arandombit) (Remote host closed the connection) |
| 2026-04-10 09:01:38 +0000 | <Milan_Vanca> | Do I understand that correctly that there is difference between exporting module M (S(S, x)) where .. and module M (S(S), x) where |
| 2026-04-10 09:02:36 +0000 | <Milan_Vanca> | data S = S {x :: Int} |
| 2026-04-10 09:03:39 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:84a:b712:d1d0:a9d4) synchromesh |
| 2026-04-10 09:10:04 +0000 | <Milan_Vanca> | Anyway I want to ask different question. I have noticed many libs (alost all) on hackage to specify upper bound for its dependencies. This article https://iscinumpy.dev/post/bound-version-constraints/ says libs should not do that. Do you think information in that article is relevant for haskell packages? |
| 2026-04-10 09:11:22 +0000 | danza | (~danza@user/danza) (Read error: Connection reset by peer) |
| 2026-04-10 09:11:32 +0000 | danza | (~danza@user/danza) danza |
| 2026-04-10 09:12:23 +0000 | <Milan_Vanca> | I don't want to start flame war I am asking in good faith. Like now I just manually "allow-newer" for every dependency but it tiresome |
| 2026-04-10 09:14:40 +0000 | infinity0 | (~infinity0@pwned.gg) (Ping timeout: 276 seconds) |
| 2026-04-10 09:15:16 +0000 | <Milan_Vanca> | To my knowledge cabal/ghc too uses "flat" structure of dependencies same as python, so arguments should be applicable. |
| 2026-04-10 09:19:03 +0000 | <merijn> | I don't know what "flt structure oif dependencies" means |
| 2026-04-10 09:19:32 +0000 | <merijn> | Milan_Vanca: Python's ecosystem is constantly broken, so I would ignore anything they say |
| 2026-04-10 09:19:39 +0000 | <tomsmeding> | from the tldr in that article: |
| 2026-04-10 09:19:42 +0000 | <tomsmeding> | > Anyone can fix a missing cap, but users cannot fix an over restrictive cap |
| 2026-04-10 09:19:51 +0000 | <merijn> | They keep reinventing their build tools every year too, each time with the same problems |
| 2026-04-10 09:19:51 +0000 | <tomsmeding> | well, no |
| 2026-04-10 09:20:25 +0000 | <tomsmeding> | fixing a missing cap requires forking the project, whereas fixing an over-restrictive cap can be done with allow-newer or by asking for a non-maintainer update of the metadata on hackagte |
| 2026-04-10 09:20:29 +0000 | <merijn> | Milan_Vanca: cabal is fundamentally different from python's dependencies management approach |
| 2026-04-10 09:20:55 +0000 | <merijn> | Milan_Vanca: Have you read the PVP? |
| 2026-04-10 09:21:14 +0000 | <merijn> | Milan_Vanca: https://pvp.haskell.org |
| 2026-04-10 09:22:18 +0000 | <Milan_Vanca> | merijn: :D Good point I think |
| 2026-04-10 09:22:26 +0000 | <merijn> | Not to mention in python everything's just dictionaries of strings to values and no guarantees of what fields exist. Which means that using the wrong version very often kinda seems to work, if you're lucky |
| 2026-04-10 09:23:15 +0000 | <Milan_Vanca> | merijn: Not yet thank you for link |
| 2026-04-10 09:23:18 +0000 | <merijn> | Milan_Vanca: If you have to "allow-newer" many things, that's a sign you're using unmaintained/out of date dependencies |
| 2026-04-10 09:23:27 +0000 | <merijn> | OR you're on the bleeding edge |
| 2026-04-10 09:24:02 +0000 | <Milan_Vanca> | tomsmeding: but can't we say in cabal to cap some max version and thus no need for fork? |
| 2026-04-10 09:24:39 +0000 | <merijn> | Milan_Vanca: Some important differences between cabal and python's tooling: 1) cabal creates a DAG of dependencies with version constraints and tries to solve it to find a combination of dependency versions that makes every transitive dependency happy |
| 2026-04-10 09:24:57 +0000 | <Milan_Vanca> | merijn: No I use ghc 9.14 and many libs just don't support that yet. |
| 2026-04-10 09:25:00 +0000 | <merijn> | that means that if a package claims to work (no upper bound), but doesn't you break everything |
| 2026-04-10 09:25:07 +0000 | <merijn> | Milan_Vanca: Right, so that's bleeding edge :p |
| 2026-04-10 09:25:14 +0000 | <merijn> | I would not use the latest GHC, tbh |
| 2026-04-10 09:25:26 +0000 | <merijn> | I personally always used "second to latest" |
| 2026-04-10 09:27:34 +0000 | <merijn> | Milan_Vanca: 2) unlike python's "everything is globally installed" OR "you gotta manually sandbox each project", cabal creates "on-demand" per-project projections of everything installed globally |
| 2026-04-10 09:27:37 +0000 | <Milan_Vanca> | merijn: I read your note about building DAG and trying to satisfy all dependencies.. But python must do the same |
| 2026-04-10 09:27:43 +0000 | <merijn> | Milan_Vanca: Oh god no |
| 2026-04-10 09:28:00 +0000 | <Milan_Vanca> | Okey I mean poetry |
| 2026-04-10 09:28:06 +0000 | <merijn> | Milan_Vanca: Most Python tooling just looks at your flat list of dependencies and goes "check, lemme use that" |
| 2026-04-10 09:28:36 +0000 | <Milan_Vanca> | you have sandbox and then solve dependencies there... |
| 2026-04-10 09:28:57 +0000 | <merijn> | Milan_Vanca: at any rate, unless there is a specific bug blocking you OR new feature you need from the latest GHC I would never recommend using the latest version |
| 2026-04-10 09:29:16 +0000 | <merijn> | I'd probably pick 9.10 or 9.12 atm |
| 2026-04-10 09:30:46 +0000 | <merijn> | And then all your --allow-newer problems should hopefully disappear |
| 2026-04-10 09:31:13 +0000 | <Milan_Vanca> | That is one way granted |
| 2026-04-10 09:31:58 +0000 | <gentauro> | tomsmeding: yeah, I road that piece of documentation and I didn't get any wiser … |
| 2026-04-10 09:32:05 +0000 | <merijn> | It generally takes 9 months to a year for a new GHC version to percolate through to for the majority of the ecosystem to |
| 2026-04-10 09:32:24 +0000 | <merijn> | And there's often not a really big reason to adopt the bleeding edge while that happens |
| 2026-04-10 09:33:04 +0000 | <gentauro> | anyway, just renamed the field and no probs :) |
| 2026-04-10 09:34:36 +0000 | infinity0 | (~infinity0@pwned.gg) infinity0 |
| 2026-04-10 09:43:41 +0000 | <Milan_Vanca> | merijn: Your stance about not using latest version are quite strong. And I kind of agree when one develops mission critical application. But also somebody needs to use and test latest version to iron out all issues. I don't want to believe that "Suitable for use/LTS" is really that buggy. |
| 2026-04-10 09:44:58 +0000 | <Milan_Vanca> | But also maybe I like to live on edge...There is also .NET MAUI "production ready" for few years but still unusable... |
| 2026-04-10 09:48:49 +0000 | <merijn> | Oh, I'm not saying you shouldn't use/test the latest version. Just be aware that that comes with a lot of --allow-newer overrides until adoption goes wider :p |
| 2026-04-10 09:49:38 +0000 | <merijn> | Milan_Vanca: It's not so much about not using latest because of being buggy, but just because dealing with the ecosystem not being instantly ready is too much of a hassle |
| 2026-04-10 09:51:26 +0000 | <Milan_Vanca> | merijn: If I "allow-newer" then the "worst" case is that type's won't match and it just won't compile right? Should I also expect runtime bugs? I mean there is always posibility to use "untested" version. |
| 2026-04-10 09:52:39 +0000 | craunts795335385 | (~craunts@152.32.99.2) |
| 2026-04-10 09:53:23 +0000 | <Milan_Vanca> | Yeah.. runtime bugs are always possible.. I should start writing more tests :D |
| 2026-04-10 09:54:47 +0000 | craunts795335385 | (~craunts@152.32.99.2) (Client Quit) |
| 2026-04-10 09:55:17 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds) |
| 2026-04-10 09:55:53 +0000 | craunts795335385 | (~craunts@152.32.99.2) |
| 2026-04-10 10:01:43 +0000 | Square3 | (~Square@user/square) Square |
| 2026-04-10 10:02:59 +0000 | <Milan_Vanca> | merijn: Anyway when you said not to look up to python packaging. Are there other systems you might recommend? |
| 2026-04-10 10:03:13 +0000 | Enrico63 | (~Enrico63@host-212-171-80-94.retail.telecomitalia.it) (Quit: Client closed) |
| 2026-04-10 10:03:42 +0000 | <merijn> | haskell's :p |
| 2026-04-10 10:03:47 +0000 | <merijn> | and maybe Rust? |
| 2026-04-10 10:04:03 +0000 | <merijn> | Although rust's stuff is heavily cabal inspired afaik |
| 2026-04-10 10:04:23 +0000 | <Milan_Vanca> | really? I didn't know that |
| 2026-04-10 10:10:52 +0000 | uli-fem | (~uli-fem@115.128.112.118) (Ping timeout: 268 seconds) |
| 2026-04-10 10:16:59 +0000 | craunts795335385 | (~craunts@152.32.99.2) (Quit: The Lounge - https://thelounge.chat) |
| 2026-04-10 10:17:27 +0000 | Pozyomka_ | (~pyon@user/pyon) pyon |
| 2026-04-10 10:17:40 +0000 | Pozyomka | (~pyon@user/pyon) (Ping timeout: 245 seconds) |
| 2026-04-10 10:18:06 +0000 | craunts795335385 | (~craunts@152.32.99.2) |
| 2026-04-10 10:20:21 +0000 | danza | (~danza@user/danza) (Ping timeout: 246 seconds) |
| 2026-04-10 10:22:13 +0000 | srazkvt | (~sarah@user/srazkvt) srazkvt |
| 2026-04-10 10:25:58 +0000 | czan | (~czan@user/mange) czan |
| 2026-04-10 10:27:54 +0000 | Googulator85 | (~Googulato@team.broadbit.hu) |
| 2026-04-10 10:40:22 +0000 | Pozyomka_ | (~pyon@user/pyon) (Ping timeout: 256 seconds) |
| 2026-04-10 10:40:34 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-04-10 10:51:32 +0000 | puke | (~puke@user/puke) (Ping timeout: 250 seconds) |
| 2026-04-10 10:54:04 +0000 | m | (~travltux@user/travltux) (Quit: WeeChat 4.7.2) |
| 2026-04-10 10:57:31 +0000 | m | (~travltux@user/travltux) travltux |
| 2026-04-10 11:03:27 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-04-10 11:04:48 +0000 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 265 seconds) |
| 2026-04-10 11:05:23 +0000 | ec | (~ec@gateway/tor-sasl/ec) ec |
| 2026-04-10 11:14:23 +0000 | CiaoSen | (~Jura@p549cbfb1.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 2026-04-10 11:18:07 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) |
| 2026-04-10 11:43:36 +0000 | Googulator46 | (~Googulato@team.broadbit.hu) |
| 2026-04-10 11:43:59 +0000 | Googulator85 | (~Googulato@team.broadbit.hu) (Quit: Client closed) |
| 2026-04-10 11:51:04 +0000 | szkl | (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 2026-04-10 11:55:09 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-04-10 11:58:48 +0000 | ft | (~ft@p508db287.dip0.t-ipconnect.de) ft |
| 2026-04-10 11:59:23 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) |
| 2026-04-10 12:01:20 +0000 | xff0x | (~xff0x@138.64.112.96) |
| 2026-04-10 12:03:40 +0000 | Googulator79 | (~Googulato@team.broadbit.hu) |
| 2026-04-10 12:04:15 +0000 | tusko | (~uwu@user/tusko) (Ping timeout: 265 seconds) |
| 2026-04-10 12:05:53 +0000 | tusko | (~uwu@user/tusko) tusko |
| 2026-04-10 12:06:27 +0000 | Googulator46 | (~Googulato@team.broadbit.hu) (Ping timeout: 245 seconds) |
| 2026-04-10 12:10:16 +0000 | CiaoSen | (~Jura@p549cbfb1.dip0.t-ipconnect.de) CiaoSen |
| 2026-04-10 12:12:28 +0000 | oxapentane | (~oxapentan@user/oxapentane) (Remote host closed the connection) |
| 2026-04-10 12:12:58 +0000 | oxapentane | (~oxapentan@user/oxapentane) oxapentane |
| 2026-04-10 12:14:23 +0000 | bggd | (~bgg@2a01:e0a:fd5:f510:8242:b373:3ea2:5d94) |
| 2026-04-10 12:14:23 +0000 | bggd | (~bgg@2a01:e0a:fd5:f510:8242:b373:3ea2:5d94) (Changing host) |
| 2026-04-10 12:14:23 +0000 | bggd | (~bgg@user/bggd) bggd |
| 2026-04-10 12:24:42 +0000 | Googulator64 | (~Googulato@team.broadbit.hu) |
| 2026-04-10 12:27:42 +0000 | Googulator79 | (~Googulato@team.broadbit.hu) (Ping timeout: 245 seconds) |
| 2026-04-10 12:37:21 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-04-10 12:39:07 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) |
| 2026-04-10 12:48:00 +0000 | puke | (~puke@user/puke) puke |
| 2026-04-10 12:51:20 +0000 | machinedgod | (~machinedg@d172-219-48-230.abhsia.telus.net) machinedgod |
| 2026-04-10 13:02:10 +0000 | karenw | (~karenw@user/karenw) (Ping timeout: 248 seconds) |
| 2026-04-10 13:08:28 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-04-10 13:12:21 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-04-10 13:12:45 +0000 | acidjnk_new | (~acidjnk@p200300d6e700e5485df403a3a7e19ae1.dip0.t-ipconnect.de) |
| 2026-04-10 13:14:27 +0000 | karenw | (~karenw@user/karenw) (Quit: Deep into that darkness peering...) |
| 2026-04-10 13:21:35 +0000 | comerijn | (~merijn@77.242.116.146) merijn |
| 2026-04-10 13:24:32 +0000 | machinedgod | (~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 244 seconds) |
| 2026-04-10 13:24:32 +0000 | CiaoSen | (~Jura@p549cbfb1.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2026-04-10 13:24:32 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-04-10 13:26:35 +0000 | CiaoSen | (~Jura@p549cbfb1.dip0.t-ipconnect.de) CiaoSen |
| 2026-04-10 13:26:35 +0000 | machinedgod | (~machinedg@d172-219-48-230.abhsia.telus.net) machinedgod |
| 2026-04-10 13:27:20 +0000 | pavonia_ | (~user@user/siracusa) siracusa |
| 2026-04-10 13:27:27 +0000 | monochrm | (trebla@216.138.220.146) monochrom |
| 2026-04-10 13:27:38 +0000 | divlamir | (~divlamir@user/divlamir) (Ping timeout: 244 seconds) |
| 2026-04-10 13:29:11 +0000 | ft | (~ft@p508db287.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2026-04-10 13:29:11 +0000 | craunts795335385 | (~craunts@152.32.99.2) (Ping timeout: 244 seconds) |
| 2026-04-10 13:29:11 +0000 | pavonia | (~user@user/siracusa) (Ping timeout: 244 seconds) |
| 2026-04-10 13:29:11 +0000 | mulk | (~mulk@pd95147f8.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2026-04-10 13:29:23 +0000 | benkard | (~mulk@pd95147f8.dip0.t-ipconnect.de) mulk |
| 2026-04-10 13:29:42 +0000 | monochrom | (trebla@216.138.220.146) (Ping timeout: 244 seconds) |
| 2026-04-10 13:29:43 +0000 | monochrm | monochrom |
| 2026-04-10 13:29:47 +0000 | benkard | mulk |
| 2026-04-10 13:29:54 +0000 | pavonia_ | pavonia |
| 2026-04-10 13:30:11 +0000 | divlamir | (~divlamir@user/divlamir) divlamir |
| 2026-04-10 13:30:44 +0000 | xff0x | (~xff0x@138.64.112.96) (Ping timeout: 244 seconds) |
| 2026-04-10 13:30:58 +0000 | ft | (~ft@p508db287.dip0.t-ipconnect.de) ft |
| 2026-04-10 13:32:34 +0000 | xff0x | (~xff0x@2405:6580:b080:900:e257:4447:f172:94ba) |
| 2026-04-10 13:34:52 +0000 | CiaoSen | (~Jura@p549cbfb1.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2026-04-10 13:35:08 +0000 | pavonia_ | (~user@user/siracusa) siracusa |
| 2026-04-10 13:36:25 +0000 | pavonia | (~user@user/siracusa) (Ping timeout: 244 seconds) |
| 2026-04-10 13:36:49 +0000 | pavonia_ | pavonia |
| 2026-04-10 13:36:54 +0000 | CiaoSen | (~Jura@p549cbfb1.dip0.t-ipconnect.de) CiaoSen |
| 2026-04-10 13:43:05 +0000 | pavonia_ | (~user@user/siracusa) siracusa |
| 2026-04-10 13:45:12 +0000 | CiaoSen | (~Jura@p549cbfb1.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 2026-04-10 13:45:12 +0000 | pavonia | (~user@user/siracusa) (Ping timeout: 244 seconds) |
| 2026-04-10 13:45:35 +0000 | pavonia_ | pavonia |
| 2026-04-10 13:47:06 +0000 | CiaoSen | (~Jura@p549cbfb1.dip0.t-ipconnect.de) CiaoSen |
| 2026-04-10 13:55:04 +0000 | srazkvt | (~sarah@user/srazkvt) (Quit: Konversation terminated!) |
| 2026-04-10 14:02:46 +0000 | Square3 | (~Square@user/square) (Ping timeout: 244 seconds) |
| 2026-04-10 14:07:54 +0000 | CiaoSen | (~Jura@p549cbfb1.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 2026-04-10 14:14:27 +0000 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
| 2026-04-10 14:15:28 +0000 | czan | (~czan@user/mange) (Quit: Zzz...) |
| 2026-04-10 14:25:09 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) |
| 2026-04-10 14:29:39 +0000 | <tomsmeding> | suppose I'm writing a little TCP server, and I have a loop that calls accept() to accept connections. I want to be exception-safe and I have some locking going on around this, so I write `mask $ \unmask -> do .... ; unmask (accept sock) `onException` cleanup; ...` |
| 2026-04-10 14:30:14 +0000 | <tomsmeding> | i.e. I want the `accept` call to be interruptible (because I'll be blocking there), but I want to know it if it went wrong and do some cleanup |
| 2026-04-10 14:31:03 +0000 | <tomsmeding> | now from just reading Control.Exception documentation, it seems that it might be possible that this thread is killed _after_ `accept` has accepted a connection (and thus opened a socket for it), but _before_ it returns. |
| 2026-04-10 14:31:24 +0000 | <tomsmeding> | I do get to run my cleanup in this case, but I don't have a socket, so I have a lingering socket open that was accepted but not closed |
| 2026-04-10 14:31:55 +0000 | <tomsmeding> | Can this be avoided, or alternatively, is it impossible for an asynchronous exception to be delivered in that interval? |
| 2026-04-10 14:35:26 +0000 | <tomsmeding> | (this is the function that is called: https://hackage-content.haskell.org/package/network-3.2.8.0/docs/src/Network.Socket.Syscall.html#a… ) |
| 2026-04-10 14:36:16 +0000 | <tomsmeding> | that mkSocket call (on the `new_sock <- ...` line) performs allocation, so it's an exception reception point as far as I know |
| 2026-04-10 14:38:03 +0000 | <tomsmeding> | or is this whole design wrong and should I just not unmask, but instead run the accept() call in masked state and do an `allowInterrupt` afterwards to check if something happened in the meantime? |
| 2026-04-10 14:38:25 +0000 | <tomsmeding> | (since accept() blocks in a foreign call, and foreign calls can't be interrupted with an asynchronous exception anyway) |
| 2026-04-10 14:39:33 +0000 | <geekosaur> | you might want https://flora.pm/packages/@hackage/safe-exceptions or UnliftIO |
| 2026-04-10 14:39:39 +0000 | <tomsmeding> | I'm in IO |
| 2026-04-10 14:39:54 +0000 | <tomsmeding> | so I don't need to unlift anything |
| 2026-04-10 14:40:13 +0000 | <int-e> | tomsmeding: Yeah I don't think the `unmask` is buying you anything useful here, in terms of interruptibility. |
| 2026-04-10 14:40:28 +0000 | <tomsmeding> | yeah I think I talked myself into the proper solution in the end |
| 2026-04-10 14:40:55 +0000 | <int-e> | (I was about to write something similar to what you wrote.) |
| 2026-04-10 14:41:13 +0000 | <tomsmeding> | cool, thank you for being my rubber duck |
| 2026-04-10 14:41:21 +0000 | <tomsmeding> | I just packed all of mine (I'm moving), so I needed you guys |
| 2026-04-10 14:41:30 +0000 | <int-e> | quack |
| 2026-04-10 14:41:36 +0000 | <tomsmeding> | :D |
| 2026-04-10 14:42:00 +0000 | <geekosaur> | the reason I mentioned UnliftIO is that it also provides an exception API that, unlike the standard one, lets you ensure nothing leaks |
| 2026-04-10 14:42:19 +0000 | <geekosaur> | (because it's a prerequisite for getting UnliftIO right) |
| 2026-04-10 14:43:37 +0000 | danza | (~danza@user/danza) danza |
| 2026-04-10 14:49:21 +0000 | <tomsmeding> | relatedly: is Control.Concurrent.STM.atomically an interruptible operation? |
| 2026-04-10 14:50:00 +0000 | <tomsmeding> | (and if it throws, or lets through, an asynchronous exception, can I assume that the transaction has failed?) |
| 2026-04-10 14:52:32 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-04-10 14:53:27 +0000 | <int-e> | STM transactions that don't retry are not interruptible |
| 2026-04-10 14:53:38 +0000 | <tomsmeding> | but it has a literal retry in it :p |
| 2026-04-10 14:53:47 +0000 | bggd | (~bgg@user/bggd) (Remote host closed the connection) |
| 2026-04-10 14:53:49 +0000 | <tomsmeding> | (that's why I'm using STM here) |
| 2026-04-10 14:54:06 +0000 | <tomsmeding> | it's fine if it's interruptible, as long as I can assume that if it's interrupted, it failed |
| 2026-04-10 14:54:59 +0000 | rekahsoft | (~rekahsoft@bras-base-orllon1103w-grc-20-76-67-111-168.dsl.bell.ca) rekahsoft |
| 2026-04-10 14:55:39 +0000 | <int-e> | If the retry bubbles up to atomically, it blocks the thread waiting for some of the involved variables to change, so the thread becomes interruptible then. |
| 2026-04-10 14:55:50 +0000 | <tomsmeding> | right |
| 2026-04-10 14:56:14 +0000 | <int-e> | So if you run `atomically` with exceptions masked... yeah getting an exception is only possible if the transaction hasn't succeeded yet. |
| 2026-04-10 14:56:22 +0000 | <tomsmeding> | perfect |
| 2026-04-10 14:57:17 +0000 | <int-e> | ("bubbles up" -- it can also hit `orElse` and that doesn't make things interruptible) |
| 2026-04-10 14:57:26 +0000 | <tomsmeding> | yes makes sense |
| 2026-04-10 14:57:41 +0000 | <int-e> | Partly based on https://stackoverflow.com/questions/78132502/is-retry-using-stm-action-guaranteed-interruptible-in… |
| 2026-04-10 14:58:11 +0000 | <int-e> | (mostly for confirmation, but the `orElse` details didn't occur to me) |
| 2026-04-10 15:07:04 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-04-10 15:19:51 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) |
| 2026-04-10 15:26:49 +0000 | driib3180 | (~driib@vmi931078.contaboserver.net) driib |
| 2026-04-10 15:26:50 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-04-10 15:34:49 +0000 | danza | (~danza@user/danza) (Remote host closed the connection) |
| 2026-04-10 15:36:29 +0000 | driib3180 | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
| 2026-04-10 15:38:45 +0000 | driib3180 | (~driib@vmi931078.contaboserver.net) driib |
| 2026-04-10 15:43:28 +0000 | somemathguy | (~somemathg@user/somemathguy) somemathguy |
| 2026-04-10 15:48:51 +0000 | eldritch-cooklie | (~eldritch-@user/eldritch-cookie) eldritch-cookie |
| 2026-04-10 15:51:37 +0000 | emaczen | (~user@user/emaczen) emaczen |
| 2026-04-10 15:53:21 +0000 | jmcantrell_ | jmcantrell |
| 2026-04-10 15:59:15 +0000 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
| 2026-04-10 16:00:43 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) (Remote host closed the connection) |
| 2026-04-10 16:00:59 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2026-04-10 16:06:59 +0000 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 245 seconds) |
| 2026-04-10 16:25:37 +0000 | Googulator64 | (~Googulato@team.broadbit.hu) (Ping timeout: 245 seconds) |
| 2026-04-10 16:28:31 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-04-10 16:36:28 +0000 | puke | (~puke@user/puke) (Ping timeout: 250 seconds) |
| 2026-04-10 16:38:11 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 2026-04-10 16:39:05 +0000 | Pozyomka_ | (~pyon@user/pyon) pyon |
| 2026-04-10 16:39:16 +0000 | Pozyomka | (~pyon@user/pyon) (Ping timeout: 276 seconds) |
| 2026-04-10 16:41:06 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-04-10 16:44:19 +0000 | takuan | (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 2026-04-10 16:45:31 +0000 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2026-04-10 16:54:18 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-04-10 16:54:25 +0000 | jmcantrell_ | jmcantrell |
| 2026-04-10 16:54:28 +0000 | jmcantrell | (~weechat@user/jmcantrell) (Client Quit) |
| 2026-04-10 16:54:44 +0000 | jmcantrell | (~weechat@user/jmcantrell) jmcantrell |
| 2026-04-10 16:57:43 +0000 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
| 2026-04-10 16:57:52 +0000 | gmg | (~user@user/gehmehgeh) gehmehgeh |
| 2026-04-10 16:59:17 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) |
| 2026-04-10 17:03:52 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) (Client Quit) |
| 2026-04-10 17:17:29 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) |
| 2026-04-10 17:32:01 +0000 | eldritch-cooklie | (~eldritch-@user/eldritch-cookie) (Ping timeout: 244 seconds) |
| 2026-04-10 17:35:06 +0000 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 268 seconds) |
| 2026-04-10 18:13:16 +0000 | qqq | (~qqq@185.54.23.237) |
| 2026-04-10 18:16:27 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:edce:786d:a89b:79a6) arandombit |
| 2026-04-10 18:16:27 +0000 | arandombit | (~arandombi@2a02:2455:8656:7100:edce:786d:a89b:79a6) (Changing host) |
| 2026-04-10 18:16:27 +0000 | arandombit | (~arandombi@user/arandombit) arandombit |
| 2026-04-10 18:18:40 +0000 | rainbyte | (~rainbyte@181.47.219.3) (Read error: Connection reset by peer) |
| 2026-04-10 18:19:43 +0000 | rainbyte | (~rainbyte@181.47.219.3) rainbyte |
| 2026-04-10 18:20:33 +0000 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2026-04-10 18:20:35 +0000 | jmcantrell_ | jmcantrell |
| 2026-04-10 18:33:30 +0000 | karenw | (~karenw@user/karenw) (Ping timeout: 244 seconds) |
| 2026-04-10 18:33:50 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-04-10 19:00:21 +0000 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-04-10 19:10:56 +0000 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2026-04-10 19:23:18 +0000 | mehbark | (~mehbark@joey.luug.ece.vt.edu) |
| 2026-04-10 19:24:36 +0000 | emmanuelux | (~em@user/emmanuelux) (Read error: Connection reset by peer) |
| 2026-04-10 19:28:00 +0000 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-04-10 19:54:28 +0000 | karenw | (~karenw@user/karenw) (Remote host closed the connection) |
| 2026-04-10 19:55:15 +0000 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-04-10 19:55:44 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds) |
| 2026-04-10 19:56:31 +0000 | karenw | (~karenw@user/karenw) karenw |
| 2026-04-10 19:56:37 +0000 | Lord_of_Life_ | Lord_of_Life |
| 2026-04-10 19:57:39 +0000 | puke | (~puke@user/puke) puke |
| 2026-04-10 20:00:39 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-04-10 20:03:50 +0000 | michalz | (~michalz@185.246.207.215) (Remote host closed the connection) |
| 2026-04-10 20:18:58 +0000 | comerijn | (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
| 2026-04-10 20:33:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 20:34:59 +0000 | emmanuelux_ | (~em@216.106.204.77.rev.sfr.net) |
| 2026-04-10 20:36:19 +0000 | emmanuelux | (~em@user/emmanuelux) (Ping timeout: 264 seconds) |
| 2026-04-10 20:40:12 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-10 20:43:57 +0000 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-04-10 20:44:32 +0000 | takuan | (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 2026-04-10 20:45:01 +0000 | emmanuelux_ | (~em@216.106.204.77.rev.sfr.net) (Read error: Connection reset by peer) |
| 2026-04-10 20:57:08 +0000 | Square3 | (~Square@user/square) Square |
| 2026-04-10 21:09:19 +0000 | pavonia | (~user@user/siracusa) siracusa |
| 2026-04-10 21:20:23 +0000 | puke | (~puke@user/puke) (Remote host closed the connection) |
| 2026-04-10 21:20:47 +0000 | puke | (~puke@user/puke) puke |
| 2026-04-10 21:24:10 +0000 | pyook | (~puke@user/puke) puke |
| 2026-04-10 21:24:10 +0000 | puke | Guest9609 |
| 2026-04-10 21:24:10 +0000 | pyook | puke |
| 2026-04-10 21:26:48 +0000 | Guest9609 | (~puke@user/puke) (Ping timeout: 250 seconds) |
| 2026-04-10 21:29:42 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:84a:b712:d1d0:a9d4) (Read error: Connection reset by peer) |
| 2026-04-10 21:30:31 +0000 | synchromesh | (~john@2406:5a00:2412:2c00:84a:b712:d1d0:a9d4) synchromesh |
| 2026-04-10 21:45:19 +0000 | jmcantrell | (~weechat@user/jmcantrell) (Ping timeout: 264 seconds) |
| 2026-04-10 21:53:09 +0000 | hololeap_ | hololeap |
| 2026-04-10 22:04:51 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 22:05:43 +0000 | traxex | (traxex@user/traxex) (Ping timeout: 264 seconds) |
| 2026-04-10 22:07:45 +0000 | tromp | (~textual@2001:1c00:340e:2700:8dcf:a6d6:339b:7a0) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-04-10 22:08:07 +0000 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
| 2026-04-10 22:09:14 +0000 | Guest62 | (~Guest62@p200300ca8f075300066cfcebe99f05bc.dip0.t-ipconnect.de) (Quit: Client closed) |
| 2026-04-10 22:10:11 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-04-10 22:13:27 +0000 | Milan_Vanca | (~milan@88.212.61.169) (Quit: WeeChat 4.7.2) |
| 2026-04-10 22:17:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 22:20:50 +0000 | karenw | (~karenw@user/karenw) (Ping timeout: 244 seconds) |
| 2026-04-10 22:22:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-04-10 22:34:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-04-10 22:39:27 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 2026-04-10 22:50:37 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-04-10 22:55:20 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 256 seconds) |
| 2026-04-10 22:56:12 +0000 | uli-fem | (~uli-fem@115.128.112.118) |