Logs on 2025-11-07 (liberachat/#haskell)
| 00:00:10 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:02:07 | × | Square2 quits (~Square4@user/square) (Ping timeout: 264 seconds) |
| 00:02:09 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 00:04:28 | × | tromp quits (~textual@2001:1c00:3487:1b00:d577:2751:e380:cb37) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 00:05:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 00:11:07 | × | annamalai quits (~annamalai@157.32.112.75) (Ping timeout: 264 seconds) |
| 00:14:42 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:19:28 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 00:19:35 | trickard_ | is now known as trickard |
| 00:30:08 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 240 seconds) |
| 00:30:30 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:35:17 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 00:40:12 | → | variant joins (~variant@136.61.39.172) |
| 00:44:49 | × | xff0x quits (~xff0x@2405:6580:b080:900:c1bd:3ff8:8b46:e15a) (Ping timeout: 260 seconds) |
| 00:46:18 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:47:28 | × | acidjnk quits (~acidjnk@p200300d6e717199501855715c4be6f96.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 00:51:10 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 00:51:11 | <monochrom> | NamedFieldPuns doesn't allow me to write like "f Ctor{field@pattern} = ...". :( |
| 00:51:31 | <monochrom> | It's OK, I resorted to "f Ctor{field=field@pattern} = ..." :) |
| 00:55:31 | × | pabs3 quits (~pabs3@user/pabs3) (Ping timeout: 264 seconds) |
| 00:56:57 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 01:02:03 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 01:02:04 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:07:18 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 01:08:17 | → | pabs3 joins (~pabs3@user/pabs3) |
| 01:09:17 | × | otto_s quits (~user@p4ff27ba5.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
| 01:10:50 | → | otto_s joins (~user@p4ff270cb.dip0.t-ipconnect.de) |
| 01:17:52 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:22:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 01:25:24 | × | ttybitnik quits (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 01:33:41 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:34:15 | → | Square2 joins (~Square4@user/square) |
| 01:36:37 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 264 seconds) |
| 01:36:55 | × | Square3 quits (~Square@user/square) (Ping timeout: 264 seconds) |
| 01:38:33 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 01:39:55 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 01:49:26 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:54:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 01:55:43 | × | poscat quits (~poscat@user/poscat) (Remote host closed the connection) |
| 01:58:11 | → | ubert1 joins (~Thunderbi@178.165.182.105.wireless.dyn.drei.com) |
| 01:58:48 | → | poscat joins (~poscat@user/poscat) |
| 01:59:25 | → | trickard__ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 01:59:30 | × | trickard quits (~trickard@cpe-53-98-47-163.wireline.com.au) (Ping timeout: 244 seconds) |
| 01:59:44 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 01:59:53 | trickard__ | is now known as trickard |
| 02:00:16 | × | ubert quits (~Thunderbi@178.165.186.48.wireless.dyn.drei.com) (Ping timeout: 246 seconds) |
| 02:00:16 | ubert1 | is now known as ubert |
| 02:05:09 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:07:34 | → | Googulator64 joins (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) |
| 02:08:30 | → | Nachtgespenst joins (~user@user/siracusa) |
| 02:10:35 | → | qqe joins (~qqq@185.54.21.203) |
| 02:10:35 | × | Googulator64 quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Client Quit) |
| 02:10:40 | → | Googulator76 joins (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) |
| 02:10:57 | × | dtman34 quits (~dtman34@c-73-242-68-179.hsd1.mn.comcast.net) (Ping timeout: 250 seconds) |
| 02:11:01 | × | Googulator quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Ping timeout: 250 seconds) |
| 02:11:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 02:14:00 | × | haltingsolver quits (~cmo@2604:3d09:207f:8000::d1dc) (Remote host closed the connection) |
| 02:14:22 | → | haltingsolver joins (~cmo@2604:3d09:207f:8000::d1dc) |
| 02:14:41 | → | bggd joins (~bgg@2a01:e0a:819:1510:488d:f1b1:72a6:5bef) |
| 02:17:05 | × | variant quits (~variant@136.61.39.172) (Ping timeout: 250 seconds) |
| 02:23:12 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:26:32 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 240 seconds) |
| 02:28:17 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 02:30:34 | × | qqe quits (~qqq@185.54.21.203) (Quit: Lost terminal) |
| 02:31:06 | → | synchrom1 joins (~john@2406:5a00:2412:2c00:ad6b:d7bc:cf6f:605a) |
| 02:33:55 | × | synchromesh quits (~john@2406:5a00:2412:2c00:752a:c037:4485:f417) (Ping timeout: 264 seconds) |
| 02:38:58 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:39:49 | × | haltingsolver quits (~cmo@2604:3d09:207f:8000::d1dc) (Ping timeout: 246 seconds) |
| 02:44:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 02:54:47 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:59:20 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 03:00:46 | → | myxos joins (~myxos@2001:579:8380:f20:469a:adbb:d673:fb5b) |
| 03:10:33 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:15:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 03:15:42 | → | Googulator62 joins (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) |
| 03:15:42 | × | Googulator76 quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Quit: Client closed) |
| 03:26:19 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:27:58 | × | connrs quits (~connrs@user/connrs) (Read error: Connection reset by peer) |
| 03:28:29 | → | connrs joins (~connrs@user/connrs) |
| 03:31:22 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 03:33:58 | × | anderson quits (anderson@user/anderson) (Ping timeout: 260 seconds) |
| 03:34:38 | × | td_ quits (~td@i53870901.versanet.de) (Ping timeout: 256 seconds) |
| 03:36:21 | → | td_ joins (~td@i5387093B.versanet.de) |
| 03:40:18 | × | machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 256 seconds) |
| 03:42:07 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:42:51 | × | Square2 quits (~Square4@user/square) (Ping timeout: 252 seconds) |
| 03:44:16 | × | sam113101 quits (~sam@modemcable200.189-202-24.mc.videotron.ca) (Quit: WeeChat 4.7.0) |
| 03:45:33 | → | sam113101 joins (~sam@modemcable200.189-202-24.mc.videotron.ca) |
| 03:47:14 | → | anderson joins (anderson@user/anderson) |
| 03:48:46 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 03:51:35 | × | haskellbridge quits (~hackager@96.28.224.214) (Remote host closed the connection) |
| 03:52:21 | → | haskellbridge joins (~hackager@96.28.224.214) |
| 03:52:21 | ChanServ | sets mode +v haskellbridge |
| 03:57:44 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 03:58:16 | → | annamalai joins (~annamalai@157.33.208.56) |
| 04:00:10 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:04:57 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 04:15:46 | → | Googulator55 joins (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) |
| 04:15:46 | × | Googulator62 quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Quit: Client closed) |
| 04:15:57 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:21:19 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 04:32:19 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:37:00 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 04:45:44 | → | Googulator41 joins (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) |
| 04:45:47 | × | Googulator55 quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Quit: Client closed) |
| 04:48:06 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:52:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 04:58:15 | × | trickard quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 04:58:29 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 05:00:36 | × | Googulator41 quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Quit: Client closed) |
| 05:00:41 | → | Googulator75 joins (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) |
| 05:01:15 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:06:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 05:17:02 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:20:41 | × | Googulator75 quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Quit: Client closed) |
| 05:20:44 | → | Googulator52 joins (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) |
| 05:24:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 05:28:38 | → | weary-traveler joins (~user@user/user363627) |
| 05:33:10 | → | qqe joins (~qqq@185.54.21.203) |
| 05:35:06 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:39:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 05:50:52 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:55:44 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 06:00:42 | × | Googulator52 quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Quit: Client closed) |
| 06:00:47 | → | Googulator78 joins (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) |
| 06:06:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:11:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 06:13:27 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 260 seconds) |
| 06:15:23 | × | Googulator78 quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Quit: Client closed) |
| 06:15:39 | → | Googulator78 joins (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) |
| 06:19:49 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 06:20:05 | → | califax joins (~califax@user/califx) |
| 06:22:28 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:27:08 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 06:29:25 | × | qqe quits (~qqq@185.54.21.203) (Quit: Lost terminal) |
| 06:33:49 | × | Googulator78 quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Quit: Client closed) |
| 06:34:02 | → | Googulator78 joins (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) |
| 06:35:34 | × | Googulator78 quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Client Quit) |
| 06:35:40 | → | Googulator43 joins (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) |
| 06:38:10 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:38:35 | × | synchrom1 quits (~john@2406:5a00:2412:2c00:ad6b:d7bc:cf6f:605a) (Read error: Connection reset by peer) |
| 06:39:46 | → | synchromesh joins (~john@2406:5a00:2412:2c00:ad6b:d7bc:cf6f:605a) |
| 06:43:31 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 06:50:56 | → | Googulator30 joins (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) |
| 06:51:16 | × | Googulator43 quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Quit: Client closed) |
| 06:53:58 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:58:41 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 06:59:04 | → | takuan joins (~takuan@d8D86B9E9.access.telenet.be) |
| 07:00:21 | → | biberu joins (~biberu@user/biberu) |
| 07:02:17 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:06:18 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 07:07:08 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 07:11:26 | → | fp joins (~Thunderbi@2001-14ba-6e24-3000--190.rev.dnainternet.fi) |
| 07:12:11 | × | trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 07:12:50 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 07:14:08 | × | fp quits (~Thunderbi@2001-14ba-6e24-3000--190.rev.dnainternet.fi) (Remote host closed the connection) |
| 07:18:02 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:19:16 | × | ft quits (~ft@p4fc2aaeb.dip0.t-ipconnect.de) (Quit: leaving) |
| 07:22:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 07:33:50 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:37:19 | × | Googulator30 quits (~Googulato@2a01-036d-0106-0180-d858-cbac-c845-1acf.pool6.digikabel.hu) (Ping timeout: 250 seconds) |
| 07:39:12 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 07:46:52 | → | __monty__ joins (~toonn@user/toonn) |
| 07:49:37 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:53:20 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 240 seconds) |
| 07:54:36 | → | tromp joins (~textual@2001:1c00:3487:1b00:5425:82ad:9644:72ca) |
| 07:54:40 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 08:03:14 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:06:01 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 246 seconds) |
| 08:08:11 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 08:10:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 08:14:17 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 08:20:34 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:21:17 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:25:52 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 08:28:34 | × | trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 08:28:48 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 08:36:55 | × | Zemy_ quits (~Zemy@72.178.108.235) (Ping timeout: 240 seconds) |
| 08:37:05 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:42:20 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 08:46:57 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 08:52:51 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:57:40 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 09:00:08 | × | tromp quits (~textual@2001:1c00:3487:1b00:5425:82ad:9644:72ca) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:04:15 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 09:05:00 | → | Zemy joins (~Zemy@2600:100c:b0a9:5d13:c885:f7ff:fe70:b995) |
| 09:05:36 | → | Zemy_ joins (~Zemy@72.178.108.235) |
| 09:06:30 | × | Zemy quits (~Zemy@2600:100c:b0a9:5d13:c885:f7ff:fe70:b995) (Read error: Connection reset by peer) |
| 09:07:06 | → | Zemy joins (~Zemy@2600:100c:b0a9:5d13:9416:6bff:fe45:7075) |
| 09:07:06 | × | Zemy_ quits (~Zemy@72.178.108.235) (Read error: Connection reset by peer) |
| 09:07:38 | → | Zemy_ joins (~Zemy@72.178.108.235) |
| 09:09:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 09:11:39 | × | Zemy quits (~Zemy@2600:100c:b0a9:5d13:9416:6bff:fe45:7075) (Ping timeout: 265 seconds) |
| 09:15:16 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 09:15:28 | × | trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 09:15:40 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 09:16:45 | → | myxokephale joins (~myxos@2001:579:8380:f20:f473:5072:5243:c7a6) |
| 09:19:10 | × | myxos quits (~myxos@2001:579:8380:f20:469a:adbb:d673:fb5b) (Ping timeout: 246 seconds) |
| 09:19:52 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 09:20:13 | × | Zemy_ quits (~Zemy@72.178.108.235) (Ping timeout: 246 seconds) |
| 09:23:01 | → | Zemy joins (~Zemy@72.178.108.235) |
| 09:26:32 | → | kuribas joins (~user@2a02:1808:d1:be31:ac10:dd83:cea2:1717) |
| 09:31:14 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 09:32:40 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 09:33:13 | → | acidjnk joins (~acidjnk@2003:d6:e717:1922:4028:f2f:de8c:479) |
| 09:36:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 09:46:38 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 09:47:45 | <kuribas> | Man, linter suggestions are sometimes plain bad: eta reduce lookup () x = Just x |
| 09:47:54 | <kuribas> | "lookup () = Just" is more obfuscated |
| 09:50:25 | <kuribas> | Is there a shorter way to say asum (map (\x -> ...maybe...) elems) |
| 09:50:34 | <lortabac> | the most annoying one for me is "Use newtype instead of data" |
| 09:50:47 | <__monty__> | Yeah, seems like personal preference to me. |
| 09:50:49 | <lortabac> | there is no way I can accidentally mix up newtype and data |
| 09:50:59 | <lortabac> | I don't see why this warning exists |
| 09:52:00 | <__monty__> | It's an optimization, I don't think single-constructor data has any advantages over newtype? |
| 09:52:17 | <kuribas> | lortabac: right, that one |
| 09:52:29 | <kuribas> | __monty__: yes, lazyness. |
| 09:53:19 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 09:53:32 | <Leary> | kuribas: `find` |
| 09:54:20 | <__monty__> | Maybe it's a matter of reducing your use of the linting tool rather? |
| 09:55:15 | <Leary> | Also, linter defaults are just defaults. You're supposed to configure away the hints you don't care for. |
| 09:55:29 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 260 seconds) |
| 09:56:50 | <kuribas> | :t find |
| 09:56:51 | <lambdabot> | Foldable t => (a -> Bool) -> t a -> Maybe a |
| 09:57:02 | <__monty__> | It's slightly annoying when you have to litter the codebase with comments to disable lints. |
| 09:57:16 | <kuribas> | Leary: find isJust ? |
| 09:57:49 | <kuribas> | Leary: but I'll still need to map. |
| 09:57:54 | <lortabac> | kuribas: listToMaybe (mapMaybe (\x -> ...) elems) |
| 09:57:58 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 09:58:17 | <lortabac> | not shorter but a little less exotic than 'asum' |
| 10:01:17 | → | Zemy_ joins (~Zemy@2600:100c:b0a1:9f27:6026:a3ff:fe87:99d9) |
| 10:01:17 | × | Zemy quits (~Zemy@72.178.108.235) (Read error: Connection reset by peer) |
| 10:01:21 | <Leary> | :t \f -> getFirst . foldMap (First . f) |
| 10:01:22 | <lambdabot> | Foldable t => (a1 -> Maybe a2) -> t a1 -> Maybe a2 |
| 10:02:37 | → | chele joins (~chele@user/chele) |
| 10:02:40 | → | Zemy joins (~Zemy@72.178.108.235) |
| 10:02:48 | <Leary> | :t \f -> getAlt . foldMap (Alt . f) |
| 10:02:50 | <lambdabot> | forall k (t :: * -> *) (f :: k -> *) (a1 :: k) a2. (Foldable t, Monoid (Alt f a1)) => (a2 -> f a1) -> t a2 -> f a1 |
| 10:03:34 | <lortabac> | I have the impression that I spend most of my life opting out of things. I wished stupid warnings wasn't part of that |
| 10:04:02 | <kuribas> | Sometimes I wonder if all these abstractions really make programs easier and more robust. |
| 10:04:06 | <kuribas> | It's mostly fun. |
| 10:04:29 | <lortabac> | maybe 90% fun and 10% effectiveness? |
| 10:04:41 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 10:05:37 | × | Zemy_ quits (~Zemy@2600:100c:b0a1:9f27:6026:a3ff:fe87:99d9) (Ping timeout: 260 seconds) |
| 10:05:43 | <kuribas> | THe biggest advantage IMO is ADTs, pattern matching, and purity... |
| 10:09:30 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 10:10:18 | <__monty__> | :t \f -> foldr ((<|>) . f) empty -- Technically shorter, I suppose. |
| 10:10:19 | <lambdabot> | (Foldable t, Alternative f) => (a1 -> f a2) -> t a1 -> f a2 |
| 10:10:41 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 10:11:05 | → | fp joins (~Thunderbi@130.233.70.136) |
| 10:12:54 | <__monty__> | Relude has `asumMap`. |
| 10:13:26 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 244 seconds) |
| 10:15:25 | <__monty__> | And none of the alternatives is actually shorter than `\f -> asum . map f`. |
| 10:16:41 | trickard_ | is now known as trickard |
| 10:20:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 10:25:20 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 10:30:28 | × | itaipu quits (~itaipu@168.121.97.28) (Ping timeout: 260 seconds) |
| 10:36:14 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 10:41:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 10:45:40 | → | Zemy_ joins (~Zemy@2600:100c:b0a1:9f27:38d4:16ff:fedd:d703) |
| 10:45:40 | × | Zemy quits (~Zemy@72.178.108.235) (Read error: Connection reset by peer) |
| 10:46:12 | → | Zemy joins (~Zemy@72.178.108.235) |
| 10:49:57 | × | Zemy_ quits (~Zemy@2600:100c:b0a1:9f27:38d4:16ff:fedd:d703) (Ping timeout: 260 seconds) |
| 10:52:01 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 10:53:00 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 10:53:55 | → | Zemy_ joins (~Zemy@2600:100c:b0a1:9f27:4085:11ff:fe99:8799) |
| 10:53:56 | × | Zemy quits (~Zemy@72.178.108.235) (Read error: Connection reset by peer) |
| 10:54:29 | → | Zemy joins (~Zemy@72.178.108.235) |
| 10:56:11 | → | Core5925 joins (~Zemy@2600:100c:b0a1:9f27:7060:ffff:fe7d:6622) |
| 10:56:11 | × | Zemy quits (~Zemy@72.178.108.235) (Read error: Connection reset by peer) |
| 10:56:26 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 10:56:44 | → | Zemy joins (~Zemy@72.178.108.235) |
| 10:57:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 10:58:13 | × | Zemy_ quits (~Zemy@2600:100c:b0a1:9f27:4085:11ff:fe99:8799) (Ping timeout: 246 seconds) |
| 11:00:53 | × | Core5925 quits (~Zemy@2600:100c:b0a1:9f27:7060:ffff:fe7d:6622) (Ping timeout: 265 seconds) |
| 11:01:01 | × | trickard quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Ping timeout: 246 seconds) |
| 11:01:38 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 11:05:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 11:10:33 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 11:15:38 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 11:18:01 | trickard_ | is now known as trickard |
| 11:21:11 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 11:26:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 11:36:59 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 11:41:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 11:43:27 | × | szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 11:52:45 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 11:57:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 12:00:24 | <dminuoso> | 09:57:02 __monty__ │ It's slightly annoying when you have to litter the codebase with comments to disable lints. |
| 12:00:28 | <dminuoso> | Reconsider your life choices then. |
| 12:00:58 | <dminuoso> | It feels like some people have become mindless slaves to their linter, rather than just explicitly picking the things they want linting for. |
| 12:03:59 | <__monty__> | I'm talking about lints I want in general, just not in specific instances. |
| 12:05:22 | <kuribas> | dminuoso: you mean you do opt-in, rather than opt-out? |
| 12:06:05 | <dminuoso> | __monty__: Sure, cant you just disable/enable the things in some global linter config? |
| 12:06:36 | <dminuoso> | kuribas: It's slightly deeper than that. I'm just talking about a conscious choice. |
| 12:06:43 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 12:06:48 | <dminuoso> | Whether that is made implicitly in an opt-out fashion or opt-in is just irrelevant. |
| 12:07:33 | <kuribas> | Yeah, I don't like mindlessly accepting linter choices, even in Python, but my colleage thought me "picky" :) |
| 12:10:11 | <dminuoso> | Every time I meet people using linters they subject themselves to a linter out of some belief that "whatever the linter does" is just "best practices". |
| 12:10:35 | <dminuoso> | Immanuel Kant talked at great lengths about this in in his essay "What is enlightenment" |
| 12:10:57 | <dminuoso> | He just didn't know about linters back then, he surely would have included it had he known. |
| 12:11:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 12:16:03 | × | [_________] quits (~oos95GWG@user/oos95GWG) (Ping timeout: 260 seconds) |
| 12:16:03 | × | vulpine quits (xfnw@user/meow/xfnw) (Ping timeout: 260 seconds) |
| 12:16:10 | <kuribas> | I am fine with a curated list decided by the team. |
| 12:16:37 | → | [_________] joins (~oos95GWG@user/oos95GWG) |
| 12:21:26 | → | Square3 joins (~Square@user/square) |
| 12:22:09 | → | Square2 joins (~Square4@user/square) |
| 12:22:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 12:22:47 | <lortabac> | the fact that HLint is configurable doesn't make the defaults less bad |
| 12:23:33 | <kuribas> | agreed |
| 12:25:25 | × | wbrawner quits (~wbrawner@129.146.105.153) (Remote host closed the connection) |
| 12:25:36 | → | wbrawner joins (~wbrawner@129.146.105.153) |
| 12:27:00 | × | gorignak quits (~gorignak@user/gorignak) (Ping timeout: 245 seconds) |
| 12:27:59 | × | trickard quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 12:28:13 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 12:28:23 | → | vulpine joins (xfnw@user/meow/xfnw) |
| 12:29:29 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 12:30:00 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 12:30:42 | <lortabac> | There was an article about this but I can't find it anymore. It's a kind of fallacy where people who are expert about a field/tool tend to respond to criticism with "you are doing it the wrong way" |
| 12:31:47 | <lortabac> | which is the right answer of course, but sometimes it's also good to consider how to improve the tool |
| 12:35:18 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 12:41:57 | <__monty__> | dminuoso: Most of my linting experience is with Pylint and no I don't know of a way to configure it from outside the source files. Don't really see a good way that'd be resilient to refactoring. Can't rely on line numbers for example but even function/method names can change. |
| 12:42:46 | → | kuribas` joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 12:44:12 | × | kuribas quits (~user@2a02:1808:d1:be31:ac10:dd83:cea2:1717) (Ping timeout: 244 seconds) |
| 12:45:47 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 12:51:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 12:51:32 | × | Square2 quits (~Square4@user/square) (Ping timeout: 244 seconds) |
| 12:52:44 | → | Zemy_ joins (~Zemy@2600:100c:b0a1:9f27:50d3:74ff:fece:a256) |
| 12:56:25 | × | Zemy quits (~Zemy@72.178.108.235) (Ping timeout: 264 seconds) |
| 12:57:37 | × | bggd quits (~bgg@2a01:e0a:819:1510:488d:f1b1:72a6:5bef) (Remote host closed the connection) |
| 12:59:46 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 13:00:26 | → | gmg joins (~user@user/gehmehgeh) |
| 13:01:35 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 13:06:36 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 13:07:42 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 13:08:03 | → | Square2 joins (~Square4@user/square) |
| 13:12:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 13:15:34 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 13:23:13 | → | Zemy joins (~Zemy@syn-192-154-181-091.biz.spectrum.com) |
| 13:23:28 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 13:27:23 | × | Zemy_ quits (~Zemy@2600:100c:b0a1:9f27:50d3:74ff:fece:a256) (Ping timeout: 250 seconds) |
| 13:28:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 13:36:25 | <Square2> | In ghci, why can I do `:info Maybe` but not `:info List`? |
| 13:37:21 | <tomsmeding> | because List does not exist? |
| 13:37:31 | <haskellbridge> | <Morj> You can do ":info []" |
| 13:38:23 | <tomsmeding> | interesting: |
| 13:38:26 | <tomsmeding> | % :i [] |
| 13:38:26 | <yahb2> | type List :: * -> * ; data List a = [] | a : [a] ; -- Defined in ‘GHC.Types’ ; instance Traversable [] ; -- Defined in ‘GHC.Internal.Data.Traversable’ ; instance MonadFail [] ; -- Defined in... |
| 13:38:36 | <tomsmeding> | turns out that since GHC 9.6, it prints `data List a` there |
| 13:38:36 | <int-e> | % import GHC.Types |
| 13:38:36 | <yahb2> | <no output> |
| 13:38:40 | <int-e> | % :i List |
| 13:38:40 | <yahb2> | type List :: * -> * ; data List a = [] | a : [a] ; -- Defined in ‘GHC.Types’ ; instance Traversable [] ; -- Defined in ‘GHC.Internal.Data.Traversable’ ; instance MonadFail [] ; -- Defined in... |
| 13:38:45 | <int-e> | see, it works ;-) |
| 13:38:59 | <tomsmeding> | then `:i []` is wrong, because the List should have been qualified |
| 13:39:16 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 13:40:26 | <tomsmeding> | % :i Data.List.List |
| 13:40:26 | <yahb2> | type List :: * -> * ; data List a = [] | a : [a] ; -- Defined in ‘GHC.Types’ ; instance Traversable [] ; -- Defined in ‘GHC.Internal.Data.Traversable’ ; instance MonadFail [] ; -- Defined in... |
| 13:40:30 | <tomsmeding> | int-e: it's also in Data.List |
| 13:40:53 | <haskellbridge> | <Morj> Are there any libraries to help me write (mostly) the same code for sqlite and postgres? I know of persistent, but I don't really love it |
| 13:41:55 | <Square2> | int-e, nice. Thanks |
| 13:42:34 | <int-e> | tomsmeding: That's new... since 9.10? Odd. |
| 13:44:09 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 13:44:23 | <haskellbridge> | <Morj> My ghci 9.6 doesn't have Data.List.List indeed, but :i [] still refers to some 'List' from who knows where |
| 13:45:54 | <tomsmeding> | Morj: GHC.Types |
| 13:46:13 | <tomsmeding> | hm, 9.10 indeed |
| 13:50:10 | <int-e> | tomsmeding: it was a proposal here: https://github.com/haskell/core-libraries-committee/issues/182 |
| 13:51:24 | <haskellbridge> | <Morj> GHC.Types.List exists indeed |
| 13:55:03 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 13:59:31 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 14:04:05 | × | trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 14:04:17 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 14:04:48 | → | Zemy_ joins (~Zemy@2600:100c:b0ab:d403:d483:98ff:fee4:d9f9) |
| 14:04:49 | × | Zemy quits (~Zemy@syn-192-154-181-091.biz.spectrum.com) (Read error: Connection reset by peer) |
| 14:05:16 | → | Zemy joins (~Zemy@syn-192-154-181-091.biz.spectrum.com) |
| 14:08:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 14:09:18 | × | Zemy_ quits (~Zemy@2600:100c:b0ab:d403:d483:98ff:fee4:d9f9) (Ping timeout: 256 seconds) |
| 14:09:44 | → | Zemy_ joins (~Zemy@2600:100c:b0ab:d403:cbc:dbff:fe6f:c62e) |
| 14:11:25 | × | Zemy quits (~Zemy@syn-192-154-181-091.biz.spectrum.com) (Ping timeout: 246 seconds) |
| 14:13:16 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 14:15:19 | → | ft joins (~ft@p4fc2aaeb.dip0.t-ipconnect.de) |
| 14:22:20 | → | Zemy joins (~Zemy@72.178.108.235) |
| 14:22:53 | <[exa]> | how does one rewrite a continuation-ish computation with a "fmap" in it, like `fmap something . blah $ \x -> ...`, into ContT? (All combinations failed for me so I'm asking) |
| 14:24:13 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 14:25:00 | <[exa]> | example: https://paste.tomsmeding.com/WfUKO31Y |
| 14:25:37 | <[exa]> | (this is torn out from a mildly over-complicated code, I'll try to materialize a simple example. The `run1` and `run2` is something like `withFileOpen` or so. |
| 14:25:40 | <[exa]> | ) |
| 14:25:44 | × | Zemy_ quits (~Zemy@2600:100c:b0ab:d403:cbc:dbff:fe6f:c62e) (Ping timeout: 256 seconds) |
| 14:28:34 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 14:30:32 | → | Googulator30 joins (~Googulato@team.broadbit.hu) |
| 14:30:54 | × | fp quits (~Thunderbi@130.233.70.136) (Quit: fp) |
| 14:31:15 | → | fp joins (~Thunderbi@130.233.70.136) |
| 14:31:46 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 14:32:04 | × | trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 14:32:17 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 14:37:27 | → | Googulator57 joins (~Googulato@team.broadbit.hu) |
| 14:37:42 | × | trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 14:39:44 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 14:40:41 | × | Googulator30 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 14:42:17 | <Square2> | is filter defined in some base class or is made specifically for different data structures? |
| 14:42:42 | <Square2> | it seems to be data structure specific |
| 14:43:12 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 14:43:18 | <haskellbridge> | <Morj> In base it's data-specific. In mono-traversable there is a class for it: https://hackage.haskell.org/package/mono-traversable-1.0.21.0/docs/Data-Sequences.html#v:filter |
| 14:45:02 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 14:46:02 | → | Googulator18 joins (~Googulato@team.broadbit.hu) |
| 14:47:53 | <Square2> | oh there's filterM I guess |
| 14:48:55 | × | Googulator57 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 14:50:40 | → | Googulator94 joins (~Googulato@team.broadbit.hu) |
| 14:50:41 | <Square2> | nvm |
| 14:54:07 | × | Googulator18 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 14:54:25 | × | Googulator94 quits (~Googulato@team.broadbit.hu) (Client Quit) |
| 14:54:40 | → | Googulator94 joins (~Googulato@team.broadbit.hu) |
| 14:55:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 14:55:33 | <lortabac> | there is a generalized version in witherable |
| 14:55:37 | <lortabac> | @hackage witherable |
| 14:55:37 | <lambdabot> | https://hackage.haskell.org/package/witherable |
| 14:56:42 | <lortabac> | which takes a different approach from mono-traversable |
| 14:56:52 | <haskellbridge> | <Morj> I like mono-traversable more because it doesn't require functor, so can work on bytestrings. On the other hand they both don't allow Set for different reasons |
| 14:57:11 | trickard_ | is now known as trickard |
| 14:57:26 | <haskellbridge> | <Morj> Wait, since when is Map a Functor? I thought the instance was unlawful |
| 14:57:31 | → | Anarchos joins (~Anarchos@91-161-254-16.subs.proxad.net) |
| 14:57:34 | <tomsmeding> | it's a functor in the values |
| 14:57:39 | <tomsmeding> | Set is not a fucntor |
| 14:57:46 | <haskellbridge> | <Morj> Ahh you're right |
| 15:00:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 15:00:19 | <tomsmeding> | [exa]: I don't think that's going to work |
| 15:00:45 | <tomsmeding> | consider: run1 "returns" two things: x and the thing that you later swap |
| 15:00:50 | <tomsmeding> | where do they go? |
| 15:02:53 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 15:02:56 | <tomsmeding> | you're trying to put one of them in the normal in-monad return value of that ContT expression, and the other in the 'r' top-level return value of the ContT computation |
| 15:03:14 | <tomsmeding> | but the latter is constant over the entire ContT computation, so fmap'ing that must be type-preserving |
| 15:04:52 | × | fp quits (~Thunderbi@130.233.70.136) (Ping timeout: 260 seconds) |
| 15:07:36 | × | Square2 quits (~Square4@user/square) (Ping timeout: 252 seconds) |
| 15:08:21 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 250 seconds) |
| 15:09:42 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 15:16:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 15:18:49 | → | xff0x joins (~xff0x@2405:6580:b080:900:f6a2:6697:d899:5ef3) |
| 15:27:44 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 15:32:31 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 15:32:54 | → | Square2 joins (~Square4@user/square) |
| 15:37:23 | × | Square2 quits (~Square4@user/square) (Ping timeout: 244 seconds) |
| 15:40:29 | × | Square3 quits (~Square@user/square) (Ping timeout: 244 seconds) |
| 15:43:31 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 15:44:28 | × | trickard quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Ping timeout: 255 seconds) |
| 15:44:48 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 15:46:41 | × | annamalai quits (~annamalai@157.33.208.56) (Read error: Connection reset by peer) |
| 15:47:02 | → | annamalai joins (~annamalai@157.33.208.56) |
| 15:48:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 15:52:34 | → | ttybitnik joins (~ttybitnik@user/wolper) |
| 15:56:58 | × | Nachtgespenst quits (~user@user/siracusa) (Quit: Bye!) |
| 15:58:14 | <dutchie> | am I supposed to use vector-algorithms to sort Data.Vector.Vectors? |
| 15:59:18 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 16:04:16 | → | fp joins (~Thunderbi@89-27-10-140.bb.dnainternet.fi) |
| 16:04:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 16:05:56 | → | Googulator49 joins (~Googulato@team.broadbit.hu) |
| 16:07:42 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 16:08:17 | × | Inline quits (~inlinE@2a02:8071:57a1:dc0:a54f:a27d:cf25:667b) (Remote host closed the connection) |
| 16:08:36 | → | Inline joins (~inlinE@2a02:8071:57a1:dc0:a54f:a27d:cf25:667b) |
| 16:09:05 | × | Googulator94 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 16:09:18 | × | YoungFrog quits (~youngfrog@2a02:a03f:ca07:f900:3dd:a915:d31f:6e01) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in) |
| 16:09:38 | → | YoungFrog joins (~youngfrog@2a02:a03f:ca07:f900:9f50:13f1:779b:4aa6) |
| 16:14:25 | × | Anarchos quits (~Anarchos@91-161-254-16.subs.proxad.net) (Read error: Connection reset by peer) |
| 16:15:00 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 16:15:44 | → | Googulator78 joins (~Googulato@team.broadbit.hu) |
| 16:19:03 | × | Googulator49 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 16:19:10 | → | tromp joins (~textual@2001:1c00:3487:1b00:5425:82ad:9644:72ca) |
| 16:23:17 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 16:26:12 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 16:26:44 | × | fp quits (~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Read error: Connection reset by peer) |
| 16:26:54 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 16:27:03 | → | fp joins (~Thunderbi@89-27-10-140.bb.dnainternet.fi) |
| 16:27:19 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
| 16:28:15 | Lord_of_Life_ | is now known as Lord_of_Life |
| 16:30:56 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 16:35:20 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 16:35:43 | → | Googulator53 joins (~Googulato@team.broadbit.hu) |
| 16:38:59 | × | Googulator78 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 16:41:37 | <kuribas`> | Funny, but I don't find that most of the bugs in my python are due to type errors. I put a type on every function thought (even if it is Any). |
| 16:41:59 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 16:43:27 | <kuribas`> | I find robustness comes from good practices mostly, like avoiding side-effects is possible, using dataclasses, not doing stringly typed programming, good exception hygience (which is tricky in python), modularity, avoiding dynamic tricks, etc.. |
| 16:43:51 | <kuribas`> | Makes me question if spending lots of time to get just that bit more type safety is worth it... |
| 16:44:07 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 16:44:14 | <kuribas`> | Or finding the most elegant way to express this single loop, which means nothing on the scale of the project. |
| 16:45:09 | <kuribas`> | Of course these things haskell encourages, and python doesn't. |
| 16:45:20 | <kuribas`> | So easy to get code that throws exceptions all over the place. |
| 16:46:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 16:48:53 | <kuribas`> | I wonder if equivalent haskell code would be faster than python. |
| 16:49:34 | <kuribas`> | since haskell has overhead for GC and immutability, but is compiled vs interpreted python. |
| 16:50:42 | → | Googulator16 joins (~Googulato@team.broadbit.hu) |
| 16:51:04 | <haskellbridge> | <loonycyborg> Main fragility of python comes not from dynamic typing but from dynamic execution I think |
| 16:51:37 | <haskellbridge> | <loonycyborg> It's a lot easier to write total nonsense in python that won't break anything until it's actually executed |
| 16:51:52 | <kuribas`> | Some of the stuff is crazy, like changing modules at runtime. |
| 16:52:13 | <haskellbridge> | <loonycyborg> So if you break something with refactoring then you won't notice it until it's actually executed |
| 16:52:23 | <haskellbridge> | <loonycyborg> if it's in some rarely used codepath then good luck |
| 16:53:18 | <haskellbridge> | <loonycyborg> This is what more complex type systems are meant to prevent. |
| 16:53:30 | <haskellbridge> | <loonycyborg> Basically aim is to prove your code at any codepath |
| 16:53:43 | × | Googulator53 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 16:53:57 | <geekosaur> | also code coverage, but that I think is equally impossible for python? |
| 16:54:07 | <kuribas`> | It helps not to do crazy stuff in Python. |
| 16:54:16 | <kuribas`> | But there are popular packages that do this. |
| 16:54:36 | → | michalz joins (~michalz@185.246.207.215) |
| 16:55:10 | <kuribas`> | dramatiq changes the class at runtime of the actors. |
| 16:57:47 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 16:59:10 | → | Anarchos joins (~Anarchos@91-161-254-16.subs.proxad.net) |
| 17:01:00 | → | Googulator5 joins (~Googulato@team.broadbit.hu) |
| 17:02:18 | × | tromp quits (~textual@2001:1c00:3487:1b00:5425:82ad:9644:72ca) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:02:52 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 17:04:07 | × | Googulator16 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 17:04:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 17:06:25 | → | tromp joins (~textual@2001:1c00:3487:1b00:5425:82ad:9644:72ca) |
| 17:10:45 | → | Googulator3 joins (~Googulato@team.broadbit.hu) |
| 17:11:43 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 17:14:05 | × | Googulator5 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 17:14:30 | × | kuribas` quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 265 seconds) |
| 17:16:16 | <haskellbridge> | <loonycyborg> Python dynamicness is both blessing and curse. If you can redefine pretty much anything at runtime(like rewrite classes and change dicts with local variables) then it's near impossible to reason about the code in general |
| 17:16:34 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 17:16:49 | <haskellbridge> | <loonycyborg> Exactly same code can have totally different effects depending on how you hack the environment before running it :P |
| 17:16:56 | → | myxos joins (~myxos@2001:579:8380:f20:6ebf:41cf:49b4:43a6) |
| 17:17:21 | × | Googulator3 quits (~Googulato@team.broadbit.hu) (Quit: Client closed) |
| 17:17:40 | → | Googulator3 joins (~Googulato@team.broadbit.hu) |
| 17:18:02 | × | trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 17:18:15 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 17:19:37 | × | myxokephale quits (~myxos@2001:579:8380:f20:f473:5072:5243:c7a6) (Ping timeout: 260 seconds) |
| 17:24:04 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer) |
| 17:25:09 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 17:27:30 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 17:32:44 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 17:33:53 | <[exa]> | tomsmeding: actually yeah that seems to be the issue |
| 17:34:15 | <[exa]> | so we need a bigger gun than ContT, great! :D |
| 17:37:14 | <tomsmeding> | [exa]: another sign that ContT is not what you want: callCC exists |
| 17:37:55 | <tomsmeding> | if you find a way to do something decent with too many nested CPS-style functions, let me know |
| 17:38:27 | <[exa]> | writing a database that has to merge segments, like lucene |
| 17:38:45 | <[exa]> | it needs like 2943872598347 resources open, so there's bracket everywhere |
| 17:38:50 | <tomsmeding> | [exa]: because I'm in deep https://git.tomsmeding.com/chad-fast/tree/src/CHAD.hs?id=38150f4f9792156d8c59439fe47ecb69a0a0e00b#n1517 |
| 17:39:15 | <[exa]> | my eyes |
| 17:39:22 | [exa] | pops a bottle of defensive geuze |
| 17:39:25 | <tomsmeding> | also these things are CPS not because they open resources but because they introduce a bunch of existential type variables |
| 17:39:44 | <tomsmeding> | I could write one-off data types for all of these to wrap the existentials that way but that would just be more verbose |
| 17:40:14 | <tomsmeding> | yes with syntax highlighting it's slightly less horrendous (the highlighting on my git site is horribly broken) |
| 17:40:20 | <tomsmeding> | emphasis on slightly |
| 17:41:00 | <tomsmeding> | [exa]: see also the type right above the link I sent you (drevLambda), as well as this type https://git.tomsmeding.com/chad-fast/tree/src/AST.hs?id=38150f4f9792156d8c59439fe47ecb69a0a0e00b#n657 |
| 17:42:22 | × | acidjnk quits (~acidjnk@2003:d6:e717:1922:4028:f2f:de8c:479) (Ping timeout: 260 seconds) |
| 17:43:17 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 17:45:42 | × | Googulator3 quits (~Googulato@team.broadbit.hu) (Quit: Client closed) |
| 17:45:43 | → | Googulator78 joins (~Googulato@team.broadbit.hu) |
| 17:46:08 | × | haritz quits (~hrtz@user/haritz) (Remote host closed the connection) |
| 17:48:06 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 17:48:12 | × | tromp quits (~textual@2001:1c00:3487:1b00:5425:82ad:9644:72ca) (Ping timeout: 252 seconds) |
| 17:49:49 | × | fp quits (~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Ping timeout: 264 seconds) |
| 17:50:43 | → | emperori joins (~emperori@2401:4900:6286:fc4d:c464:378c:4752:c5b7) |
| 17:51:16 | → | haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 17:51:16 | × | haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 17:51:16 | → | haritz joins (~hrtz@user/haritz) |
| 17:51:49 | × | emperori quits (~emperori@2401:4900:6286:fc4d:c464:378c:4752:c5b7) (Remote host closed the connection) |
| 17:56:28 | × | comonad quits (~comonad@p200300d02741a000c6934c09e8b46dfd.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 17:58:44 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 17:59:05 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:00:45 | → | Googulator69 joins (~Googulato@team.broadbit.hu) |
| 18:02:16 | → | acidjnk joins (~acidjnk@p200300d6e717192240280f2fde8c0479.dip0.t-ipconnect.de) |
| 18:03:35 | × | Googulator69 quits (~Googulato@team.broadbit.hu) (Client Quit) |
| 18:03:55 | × | Googulator78 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 18:03:57 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 18:03:58 | → | Googulator69 joins (~Googulato@team.broadbit.hu) |
| 18:04:29 | → | machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net) |
| 18:05:40 | <[exa]> | I'll simply write a note for myself here to never try to golf contT into this :D |
| 18:06:08 | × | haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 18:06:55 | <[exa]> | tomsmeding: you should run hindent on that thing, it reads .... less chaotically I guess |
| 18:12:41 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:12:54 | → | comonad joins (~comonad@p200300d02741a000c6934c09e8b46dfd.dip0.t-ipconnect.de) |
| 18:13:14 | <tomsmeding> | [exa]: and end up with 15 levels deep indentation? |
| 18:13:52 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 18:14:04 | <tomsmeding> | [exa]: I'm honestly open for suggestions how to properly format this |
| 18:14:05 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 18:14:07 | <tomsmeding> | or even organise this |
| 18:14:35 | <tomsmeding> | semantically it's just a long list of let bindings, it's just that the language forces me to make some of those callbacks because of existentials |
| 18:14:41 | → | haritz joins (~hrtz@140.228.70.141) |
| 18:14:41 | × | haritz quits (~hrtz@140.228.70.141) (Changing host) |
| 18:14:41 | → | haritz joins (~hrtz@user/haritz) |
| 18:15:07 | <[exa]> | tomsmeding: oh wait ok I see |
| 18:15:23 | → | img joins (~img@user/img) |
| 18:15:30 | × | haritz quits (~hrtz@user/haritz) (Remote host closed the connection) |
| 18:15:40 | × | Googulator69 quits (~Googulato@team.broadbit.hu) (Quit: Client closed) |
| 18:15:43 | → | Googulator68 joins (~Googulato@team.broadbit.hu) |
| 18:16:28 | <tomsmeding> | [exa]: I ran hindent on the thing, is this better? https://paste.tomsmeding.com/OgCpjy7u |
| 18:17:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 18:17:56 | <tomsmeding> | 15 was actually an understatement, getting 20 levels here |
| 18:18:30 | <[exa]> | could you run the whole thing in Identity, replace the single-cases with binding? |
| 18:18:36 | <[exa]> | in Identity do? |
| 18:18:45 | <[exa]> | other than that no actual idea, it's brutal |
| 18:19:16 | <[exa]> | might be arrows. |
| 18:19:51 | <int-e> | IIUC you can't let-bind type evidence |
| 18:20:29 | <tomsmeding> | [exa]: I tried just now, doesn't seem to eat the existentials |
| 18:20:55 | <int-e> | `Refl <- pure ...` should have a chance |
| 18:21:05 | <int-e> | but isn't nice :P |
| 18:21:22 | <tomsmeding> | int-e: I have functions that return stuff with existentials; I implement them currently in CPS style by having them take a continuation with some foralls |
| 18:22:00 | <int-e> | yeah I don't think you'll get rid of that conveniently |
| 18:22:03 | <tomsmeding> | if I put 'Identity' in that continuation then GHC complains on the use of 'Identity' that it can't match variables "because type variable ‘env'1’ would escape its scope" |
| 18:22:29 | <int-e> | (CPS isn't that horrible, compared to having ad-hoc existential data types) |
| 18:22:30 | <tomsmeding> | I can write a custom data type for each of these functions, but I don't think that's better |
| 18:22:34 | <tomsmeding> | ^ |
| 18:23:26 | <[exa]> | y u so complex programs |
| 18:23:55 | <tomsmeding> | I made the decision to make the embedded language in this compiler strongly typed |
| 18:24:18 | <tomsmeding> | then I proceeded to implement complicated algorithms in it |
| 18:24:26 | <tomsmeding> | the latter is "because this is phd research lolo" |
| 18:24:32 | <tomsmeding> | s/lolo/lol/ |
| 18:24:51 | <tomsmeding> | the former is "because it means that when I manage to make the bloody thing typecheck it has an 80% chance of being correct" |
| 18:25:09 | <tomsmeding> | and I feel like if I hadn't, that probability would have been <5% |
| 18:25:42 | → | Googulator41 joins (~Googulato@team.broadbit.hu) |
| 18:25:58 | <tomsmeding> | this is a code transformation where the types in the output code depend quite significantly on the precise structure of the input _terms- |
| 18:26:04 | <tomsmeding> | s/-/_/ |
| 18:28:31 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:28:53 | → | Square3 joins (~Square@user/square) |
| 18:29:03 | × | Googulator68 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 18:29:44 | → | gmg joins (~user@user/gehmehgeh) |
| 18:30:38 | <[exa]> | yeah like, I might need a week to properly soak that in |
| 18:30:48 | × | Googulator41 quits (~Googulato@team.broadbit.hu) (Quit: Client closed) |
| 18:30:52 | → | Googulator53 joins (~Googulato@team.broadbit.hu) |
| 18:33:46 | <tomsmeding> | my advisor sometimes speaks of future a future phd student continuing work on this codebase |
| 18:33:58 | <tomsmeding> | s/of future/of/ (why can't I type today) |
| 18:34:58 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 18:37:09 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 18:37:54 | <[exa]> | "future phd student working on something" yeah I love listening to fairy tales :D |
| 18:38:32 | <tomsmeding> | I've seen a phd student working on prior student projects and they were miserabl |
| 18:38:34 | <tomsmeding> | e |
| 18:39:31 | <tomsmeding> | there being a future phd student is actually less of a fiction than you might think in this case, he has a grant and is hiring |
| 18:39:45 | <tomsmeding> | them successfully continuing work on this codebase, on the other hand... |
| 18:45:14 | <tomsmeding> | this CPS stuff is yet another reason I should have written this in Agda I guess |
| 18:45:32 | <tomsmeding> | there you can just return a dependent pair of whatever existential you want and call it a day |
| 18:46:33 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:49:24 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 18:51:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 18:59:17 | × | ZLima12_ quits (~zlima12@user/meow/ZLima12) () |
| 19:01:59 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:04:21 | × | synchromesh quits (~john@2406:5a00:2412:2c00:ad6b:d7bc:cf6f:605a) (Read error: Connection reset by peer) |
| 19:05:25 | → | synchromesh joins (~john@2406:5a00:2412:2c00:ad6b:d7bc:cf6f:605a) |
| 19:06:48 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 19:07:32 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 19:08:07 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 264 seconds) |
| 19:09:40 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 19:13:44 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:16:02 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 19:16:13 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 19:18:14 | → | haritz joins (~hrtz@140.228.70.141) |
| 19:18:14 | × | haritz quits (~hrtz@140.228.70.141) (Changing host) |
| 19:18:14 | → | haritz joins (~hrtz@user/haritz) |
| 19:18:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 19:23:19 | × | michalz quits (~michalz@185.246.207.215) (Remote host closed the connection) |
| 19:27:03 | × | haritz quits (~hrtz@user/haritz) (Remote host closed the connection) |
| 19:29:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:34:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 19:45:19 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:47:09 | × | biberu quits (~biberu@user/biberu) (Quit: ZNC - https://znc.in) |
| 19:49:19 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 240 seconds) |
| 19:50:12 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 19:50:42 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 19:51:03 | → | ZLima12 joins (~zlima12@user/meow/ZLima12) |
| 19:54:24 | <monochrom> | I would consider not indenting. E.g., line n column k: "foo \i ->", line (n+1) column k: "bar \j ->", line (n+2) column k: "x y z i j" |
| 19:54:39 | <tomsmeding> | yep, that's exactly what I ended up doing |
| 19:55:35 | <monochrom> | Another way (mostly to appease other people's rigid style guides) is to use ContT or Codensity, then it's just a do-block. :) |
| 19:55:55 | <tomsmeding> | monochrom: does ContT really work? |
| 19:56:02 | <tomsmeding> | pls teach me |
| 19:56:56 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 19:58:29 | <tomsmeding> | monochrom: can you write this with some monad trick? https://play.haskell.org/saved/REvWXlQd |
| 19:58:43 | → | haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 19:58:43 | × | haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 19:58:43 | → | haritz joins (~hrtz@user/haritz) |
| 19:59:10 | <monochrom> | Nice, I'll work with that. |
| 20:00:38 | → | yauhsien joins (~Yau-Hsien@118-168-140-77.dynamic-ip.hinet.net) |
| 20:01:07 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:01:41 | <EvanR> | It's a monad. I know this. </jurassicpark> |
| 20:02:07 | <monochrom> | onoes there are 2 arguments! |
| 20:02:28 | <monochrom> | "now there are two of them!" </phantom menace> |
| 20:02:38 | <tomsmeding> | monochrom: I think that's not the biggest problem there -- you can just use a tuple |
| 20:02:39 | <glguy> | uncurry it to get back to one |
| 20:02:41 | <tomsmeding> | the problem is the existential |
| 20:03:15 | <monochrom> | Yeah the forall may require Codensity. |
| 20:03:33 | <monochrom> | err no, Codensity does forall on the other guy. |
| 20:05:44 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 20:05:55 | → | Googulator34 joins (~Googulato@team.broadbit.hu) |
| 20:09:08 | → | Googulator13 joins (~Googulato@team.broadbit.hu) |
| 20:09:09 | × | Googulator53 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 20:09:09 | <Leary> | tomsmeding: https://paste.tomsmeding.com/phEkL7cc |
| 20:09:27 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 20:10:05 | <tomsmeding> | oh that's delightful |
| 20:10:20 | <monochrom> | Intreresting |
| 20:10:44 | × | Googulator13 quits (~Googulato@team.broadbit.hu) (Client Quit) |
| 20:10:50 | → | Googulator11 joins (~Googulato@team.broadbit.hu) |
| 20:11:28 | <EvanR> | because of that I'm now using ImpredicativeTypes everywhere |
| 20:11:45 | <tomsmeding> | what makes it better is that that type for >>= is completely different from what >>= is normally supposed to be |
| 20:11:46 | <monochrom> | heh |
| 20:12:03 | <EvanR> | how I learned to stop worrying and love ImpredicativeTypes |
| 20:13:03 | × | Googulator34 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 20:14:45 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:17:49 | × | Googulator11 quits (~Googulato@team.broadbit.hu) (Ping timeout: 250 seconds) |
| 20:19:29 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 20:20:24 | [exa] | discovers QualifiedDo |
| 20:20:29 | <tomsmeding> | Leary: it doesn't seem possible to write a generic adaptor for two-result functions like my original 'foo' to one-result functions, right? |
| 20:23:58 | × | machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 265 seconds) |
| 20:27:11 | <monochrom> | Here is the worst of both worlds, just for laughs: https://play.haskell.org/saved/YfoP6M4d |
| 20:27:18 | <[exa]> | Leary: ok turns out the QualifiedDo completely solves my previous concerns, thanks again :D |
| 20:28:59 | <tomsmeding> | monochrom: https://play.haskell.org/saved/VMQbllqc :p |
| 20:29:11 | <tomsmeding> | once you have a data type no more cruft is necessary |
| 20:29:49 | <tomsmeding> | [exa]: do you seriously think that a wacky utterly-not-a-monad QualifiedDo thing is better than nested wrapper functions |
| 20:30:20 | <[exa]> | well, there's 10 levels of indentation on the table |
| 20:30:26 | <monochrom> | Actually "foo :: Int -> E" and "E x1 f1 <- Identity (foo n)" is simpler. |
| 20:30:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:31:00 | <monochrom> | Anyway please turn on BlockArguments >:) |
| 20:31:37 | <tomsmeding> | monochrom: don't even need the Identity, in fact https://play.haskell.org/saved/clzWP2pe |
| 20:31:50 | × | DetourNetworkUK quits (DetourNetw@user/DetourNetworkUK) () |
| 20:31:51 | <monochrom> | OK yeah we need dependent pairs yeah. |
| 20:32:11 | <tomsmeding> | [exa]: I have a case in this file with 12 |
| 20:32:20 | <monochrom> | Haha "what's the difference between do-notation and guards?" |
| 20:33:13 | <tomsmeding> | [exa]: https://git.tomsmeding.com/chad-fast/tree/src/CHAD.hs?id=38150f4f9792156d8c59439fe47ecb69a0a0e00b#n877 lines 878, 879, 880, 882, 884, 886, 887-888, 897, 900-903, 907, 908 |
| 20:33:15 | <tomsmeding> | ok 11 |
| 20:33:24 | <tomsmeding> | but only if you bundle the Refls together into tuples, otherwise it's 15 |
| 20:33:37 | trickard_ | is now known as trickard |
| 20:33:54 | <tomsmeding> | (this case has the advantage of most of the functions actually having data types defined for them) |
| 20:34:37 | <tomsmeding> | Leary: now I'm seriously considering using this, talk me out of it |
| 20:35:24 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 20:35:52 | <tomsmeding> | nah this has only one real advantage: the binders are always on the left-hand side, instead of sometimes on the left and sometimes on the right |
| 20:35:54 | <monochrom> | "Once you've seen it, you can't unseen it" >:) |
| 20:36:27 | <tomsmeding> | the cost is having to tuple the continuations for everything, and a wacky thing that everyone will do a double-take on |
| 20:37:31 | <tomsmeding> | Leary: required additional thing in the ContDo module: class AlwaysFail a; instance TypeError (Text "fail") => AlwaysFail a; fail :: AlwaysFail a => String -> a; fail = error |
| 20:38:07 | <monochrom> | OK the original "foo \i -", don't indent, "bar \j ->" is the simplest, if there is no auto-indenter or draconic style checker getting in the way. |
| 20:38:23 | <tomsmeding> | no autoformatter in my code |
| 20:41:04 | <Leary> | tomsmeding: A spoonful of sugar helps the medicine go down. I won't talk you out of sweetening the pot. :) |
| 20:41:19 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 20:41:37 | <Leary> | Re multi-result functions, I don't know, but I doubt there's a nice way. |
| 20:41:37 | → | DetourNetworkUK joins (~DetourNet@user/DetourNetworkUK) |
| 20:42:44 | <EvanR> | haskell should have been designed based on 2 result functions from the beginning, instead of 1 |
| 20:42:54 | <EvanR> | no one in their right mind would ask for 3 |
| 20:43:01 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:43:11 | <tomsmeding> | EvanR: I have CPSy functions returning 6 things |
| 20:43:24 | <EvanR> | that's consistent with what I said |
| 20:43:29 | <tomsmeding> | fair |
| 20:43:45 | <EvanR> | the 0 1 6 rule |
| 20:43:58 | <tomsmeding> | it has been enshrined on a branch lol https://git.tomsmeding.com/chad-fast/commit/?h=qualified-contdo&id=4ccf1996a5bd739dfb1e62fb3bfb189c04fb6d89 |
| 20:46:52 | <monochrom> | GHC was designed for 64-result functions. >:) |
| 20:47:22 | × | trickard quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 20:47:35 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 20:48:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 20:48:06 | <EvanR> | no one in their right mind would ask for 65 |
| 20:48:28 | <geekosaur> | no one in their right mind would ask for 64 😈 |
| 20:48:55 | <geekosaur> | (also I think it's 63?) |
| 20:51:33 | × | fgarcia quits (~lei@user/fgarcia) (Quit: Remote host closed the connection) |
| 20:58:51 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:02:46 | <tomsmeding> | https://hackage.haskell.org/package/ghc-prim-0.13.0/docs/src/GHC.Tuple.html |
| 21:02:58 | <tomsmeding> | looks like 64 is good |
| 21:03:54 | → | ss4 joins (~wootehfoo@user/wootehfoot) |
| 21:03:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 21:05:41 | × | ss4 quits (~wootehfoo@user/wootehfoot) (Client Quit) |
| 21:06:37 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 264 seconds) |
| 21:14:41 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:19:19 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 21:30:26 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:36:08 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 21:37:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 21:39:32 | × | trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 21:39:46 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 21:39:55 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 21:48:30 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:50:33 | × | sam113101 quits (~sam@modemcable200.189-202-24.mc.videotron.ca) (Read error: Connection reset by peer) |
| 21:51:02 | → | sam113101 joins (~sam@modemcable200.189-202-24.mc.videotron.ca) |
| 21:53:30 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 22:04:07 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 22:04:18 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:07:55 | × | duckworld quits (~duckworld@user/duckworld) (*.net *.split) |
| 22:07:55 | × | superbil quits (~superbil@114-32-231-70.hinet-ip.hinet.net) (*.net *.split) |
| 22:07:55 | × | Axman6 quits (~Axman6@user/axman6) (*.net *.split) |
| 22:08:27 | → | superbil joins (~superbil@114-32-231-70.hinet-ip.hinet.net) |
| 22:08:27 | → | Axman6 joins (~Axman6@user/axman6) |
| 22:08:27 | → | duckworld joins (~duckworld@user/duckworld) |
| 22:08:32 | × | duckworld quits (~duckworld@user/duckworld) (Max SendQ exceeded) |
| 22:08:49 | → | duckworld joins (~duckworld@user/duckworld) |
| 22:08:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 22:14:58 | × | haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 22:15:38 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 244 seconds) |
| 22:15:45 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:17:18 | → | jonny joins (~jonny@190.221.193.49) |
| 22:18:17 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Read error: Connection reset by peer) |
| 22:20:38 | × | trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 22:20:43 | → | chexum_ joins (~quassel@gateway/tor-sasl/chexum) |
| 22:20:48 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 22:20:52 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 22:20:53 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 22:22:36 | × | chiselfu1e quits (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 22:22:36 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 22:23:29 | × | jonny quits (~jonny@190.221.193.49) (Quit: Client closed) |
| 22:29:45 | × | williu5 quits (~williu5@user/williu5) (Quit: WeeChat 4.1.1) |
| 22:31:31 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:34:13 | trickard_ | is now known as trickard |
| 22:35:51 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 252 seconds) |
| 22:36:10 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 22:38:57 | → | divlamir_ joins (~divlamir@user/divlamir) |
| 22:38:59 | × | divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 22:39:49 | divlamir_ | is now known as divlamir |
| 22:40:46 | → | Googulator11 joins (~Googulato@2a01-036d-0106-0180-8127-ba79-55a7-6f29.pool6.digikabel.hu) |
| 22:47:19 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:51:52 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 22:57:18 | → | machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net) |
| 23:01:39 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 23:02:43 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:05:39 | × | Googulator11 quits (~Googulato@2a01-036d-0106-0180-8127-ba79-55a7-6f29.pool6.digikabel.hu) (Quit: Client closed) |
| 23:05:44 | → | Googulator28 joins (~Googulato@2a01-036d-0106-0180-8127-ba79-55a7-6f29.pool6.digikabel.hu) |
| 23:07:52 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 23:14:34 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:15:03 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 23:16:44 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:17:49 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 23:17:56 | → | haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) |
| 23:17:56 | × | haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host) |
| 23:17:56 | → | haritz joins (~hrtz@user/haritz) |
| 23:19:27 | → | Guest23 joins (~Guest23@66.154.176.34) |
| 23:21:21 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 23:24:00 | → | peterbecich joins (~Thunderbi@172.222.148.214) |
| 23:32:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:35:44 | → | Googulator55 joins (~Googulato@2a01-036d-0106-0180-8127-ba79-55a7-6f29.pool6.digikabel.hu) |
| 23:35:46 | × | Googulator28 quits (~Googulato@2a01-036d-0106-0180-8127-ba79-55a7-6f29.pool6.digikabel.hu) (Quit: Client closed) |
| 23:36:17 | × | Guest23 quits (~Guest23@66.154.176.34) (Quit: Client closed) |
| 23:37:07 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 23:37:22 | × | trickard quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Ping timeout: 246 seconds) |
| 23:37:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds) |
| 23:38:25 | × | weary-traveler quits (~user@user/user363627) (Quit: Konversation terminated!) |
| 23:38:40 | → | weary-traveler joins (~user@user/user363627) |
| 23:41:12 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
| 23:41:52 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 23:42:32 | × | noctux quits (~noctux@user/noctux) (Ping timeout: 240 seconds) |
| 23:46:19 | × | Anarchos quits (~Anarchos@91-161-254-16.subs.proxad.net) (Quit: Vision[]: i've been blurred!) |
| 23:48:20 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:48:31 | × | peterbecich quits (~Thunderbi@172.222.148.214) (Ping timeout: 240 seconds) |
| 23:49:06 | → | noctux joins (~noctux@user/noctux) |
| 23:52:43 | × | trickard_ quits (~trickard@cpe-57-98-47-163.wireline.com.au) (Ping timeout: 255 seconds) |
| 23:52:51 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 23:53:24 | × | noctux quits (~noctux@user/noctux) (Ping timeout: 252 seconds) |
| 23:54:30 | → | haltingsolver joins (~cmo@2604:3d09:207f:8000::d1dc) |
| 23:55:18 | → | trickard_ joins (~trickard@cpe-57-98-47-163.wireline.com.au) |
All times are in UTC on 2025-11-07.