Home liberachat/#haskell: Logs Calendar

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.