2026/05/20

2026-05-20 00:02:53 +0000ricardomaps(~ricardoma@2804:14d:a040:81ea:8593:5fde:adde:bbe9)
2026-05-20 00:03:11 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-20 00:03:24 +0000ricardomaps(~ricardoma@2804:14d:a040:81ea:8593:5fde:adde:bbe9) (Client Quit)
2026-05-20 00:10:33 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 00:12:40 +0000acidjnk_new3(~acidjnk@p200300d6e700e557175153c27e2abf22.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2026-05-20 00:15:17 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2026-05-20 00:15:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-05-20 00:16:51 +0000nhar(~noah@76.33.110.8)
2026-05-20 00:21:21 +0000nhar(~noah@76.33.110.8) (Ping timeout: 246 seconds)
2026-05-20 00:22:21 +0000jreicher(~joelr@user/jreicher) (*.net *.split)
2026-05-20 00:22:21 +0000Axman6(~Axman6@user/axman6) (*.net *.split)
2026-05-20 00:23:10 +0000jreicher(~joelr@user/jreicher) jreicher
2026-05-20 00:25:03 +0000jreicher(~joelr@user/jreicher) (*.net *.split)
2026-05-20 00:26:32 +0000Square2(~Square4@user/square) Square
2026-05-20 00:28:29 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 00:30:29 +0000nhar(~noah@76.33.110.8)
2026-05-20 00:30:40 +0000Typedfern(~Typedfern@176.red-83-37-46.dynamicip.rima-tde.net) (Server closed connection)
2026-05-20 00:31:04 +0000Typedfern(~Typedfern@176.red-83-37-46.dynamicip.rima-tde.net) typedfern
2026-05-20 00:32:26 +0000califax(~califax@user/califx) (Remote host closed the connection)
2026-05-20 00:32:47 +0000layline_(~layline@149.154.26.166) layline
2026-05-20 00:33:26 +0000califax(~califax@user/califx) califx
2026-05-20 00:35:12 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 00:38:02 +0000nhar(~noah@76.33.110.8) (Ping timeout: 265 seconds)
2026-05-20 00:38:30 +0000myxos(~myxos@67-1-178-42.tcso.qwest.net) (Ping timeout: 245 seconds)
2026-05-20 00:39:19 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)
2026-05-20 00:40:55 +0000myxos(~myxos@67-1-178-42.tcso.qwest.net) myxokephale
2026-05-20 00:46:32 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 00:47:43 +0000myxos(~myxos@67-1-178-42.tcso.qwest.net) (Ping timeout: 255 seconds)
2026-05-20 00:49:59 +0000nhar(~noah@76.33.110.8)
2026-05-20 00:51:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-05-20 00:53:50 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 256 seconds)
2026-05-20 00:54:22 +0000czan`(~czan@user/mange) czan
2026-05-20 00:54:28 +0000nhar(~noah@76.33.110.8) (Ping timeout: 255 seconds)
2026-05-20 00:59:57 +0000jreicher(~joelr@user/jreicher) jreicher
2026-05-20 01:01:32 +0000xff0x(~xff0x@2405:6580:b080:900:8fea:9572:e093:f731) (Ping timeout: 244 seconds)
2026-05-20 01:02:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 01:05:56 +0000czan(~czan@user/mange) (Killed (NickServ (GHOST command used by czan`)))
2026-05-20 01:06:10 +0000czan`czan
2026-05-20 01:06:39 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-20 01:07:04 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-05-20 01:16:46 +0000nhar(~noah@76.33.110.8)
2026-05-20 01:18:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 01:18:55 +0000confusedalex(~confuseda@user/confusedalex) (Ping timeout: 264 seconds)
2026-05-20 01:22:40 +0000j0lol(~j0lol@132.145.17.236) (Ping timeout: 245 seconds)
2026-05-20 01:22:49 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-05-20 01:23:17 +0000nhar(~noah@76.33.110.8) (Ping timeout: 255 seconds)
2026-05-20 01:23:32 +0000vgtw(~vgtw@user/vgtw) (Quit: ZNC - https://znc.in)
2026-05-20 01:23:42 +0000xnbya(~xnbya@2a01:4f8:c17:cbdd::1) (Quit: No Ping reply in 180 seconds.)
2026-05-20 01:24:58 +0000xnbya(~xnbya@2a01:4f8:c17:cbdd::1)
2026-05-20 01:25:10 +0000_________(~nobody@user/noodly) (Ping timeout: 245 seconds)
2026-05-20 01:25:26 +0000Moyst(~moyst@user/moyst) (Remote host closed the connection)
2026-05-20 01:25:42 +0000Moyst(~moyst@user/moyst) Moyst
2026-05-20 01:26:03 +0000_________(~nobody@user/noodly) _________
2026-05-20 01:27:03 +0000vgtw(~vgtw@user/vgtw) vgtw
2026-05-20 01:33:11 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-05-20 01:33:29 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 01:37:42 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 01:39:29 +0000ricardomaps(~ricardoma@2804:14d:a040:81ea:8593:5fde:adde:bbe9)
2026-05-20 01:40:12 +0000Inst(~Inst@user/Inst) Inst
2026-05-20 01:40:45 +0000layline_layline-away
2026-05-20 01:42:20 +0000j0lol(~j0lol@132.145.17.236) j0lol
2026-05-20 01:44:53 +0000layline-awaylayline_
2026-05-20 01:48:51 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 01:52:35 +0000confusedalex(~confuseda@user/confusedalex) confusedalex
2026-05-20 01:53:45 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-05-20 01:58:45 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-05-20 01:58:45 +0000pavonia(~user@user/siracusa) (Ping timeout: 265 seconds)
2026-05-20 02:01:35 +0000nhar(~noah@76.33.110.8)
2026-05-20 02:04:37 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 02:06:38 +0000layline_layline-away
2026-05-20 02:07:42 +0000nhar(~noah@76.33.110.8) (Ping timeout: 245 seconds)
2026-05-20 02:08:59 +0000myxos(~myxos@67-1-178-42.tcso.qwest.net) myxokephale
2026-05-20 02:09:30 +0000puke(~puke@user/puke) (Ping timeout: 246 seconds)
2026-05-20 02:11:16 +0000troojg(~troojg@user/troojg) (Ping timeout: 276 seconds)
2026-05-20 02:13:11 +0000nhar(~noah@76.33.110.8)
2026-05-20 02:14:54 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 02:17:43 +0000nhar(~noah@76.33.110.8) (Ping timeout: 255 seconds)
2026-05-20 02:23:58 +0000pavonia(~user@user/siracusa) siracusa
2026-05-20 02:24:59 +0000layline-awaylayline_
2026-05-20 02:25:37 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 245 seconds)
2026-05-20 02:26:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 02:26:45 +0000puke(~puke@user/puke) puke
2026-05-20 02:29:49 +0000Guest54(~Guest54@2600:1700:4c00:68f0:c786:9a89:b897:4427)
2026-05-20 02:31:02 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 02:41:56 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 02:45:16 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-05-20 02:45:19 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-20 02:46:12 +0000fgarcia(~lei@user/fgarcia) (Max SendQ exceeded)
2026-05-20 02:46:58 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-05-20 02:51:42 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-05-20 02:52:03 +0000fgarcia(~lei@user/fgarcia) (Max SendQ exceeded)
2026-05-20 02:54:56 +0000haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2026-05-20 02:55:00 +0000Googulator(~Googulato@94-21-138-77.pool.digikabel.hu) (Quit: Client closed)
2026-05-20 02:55:14 +0000Googulator(~Googulato@94-21-138-77.pool.digikabel.hu)
2026-05-20 02:57:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 02:58:11 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-05-20 02:58:19 +0000fgarcia(~lei@user/fgarcia) (Max SendQ exceeded)
2026-05-20 02:58:26 +0000ricardomaps(~ricardoma@2804:14d:a040:81ea:8593:5fde:adde:bbe9) (Ping timeout: 248 seconds)
2026-05-20 03:00:23 +0000puke(~puke@user/puke) (Read error: error:0A000139:SSL routines::record layer failure)
2026-05-20 03:00:47 +0000puke(~puke@user/puke) puke
2026-05-20 03:02:43 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-05-20 03:05:25 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-05-20 03:05:46 +0000fgarcia(~lei@user/fgarcia) (Max SendQ exceeded)
2026-05-20 03:05:53 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2026-05-20 03:08:26 +0000m(~travltux@user/travltux) travltux
2026-05-20 03:09:06 +0000remexre(~remexre@user/remexre) (Ping timeout: 248 seconds)
2026-05-20 03:09:16 +0000Eoco(~ian@128.101.131.218) (Ping timeout: 256 seconds)
2026-05-20 03:11:48 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-05-20 03:12:49 +0000fgarcia(~lei@user/fgarcia) (Max SendQ exceeded)
2026-05-20 03:13:31 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 03:15:53 +0000gehmehgeh(~user@user/gehmehgeh) gehmehgeh
2026-05-20 03:18:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 03:18:29 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-05-20 03:18:38 +0000fgarcia(~lei@user/fgarcia) (Max SendQ exceeded)
2026-05-20 03:19:22 +0000gmg(~user@user/gehmehgeh) (Ping timeout: 252 seconds)
2026-05-20 03:24:48 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-05-20 03:24:57 +0000fgarcia(~lei@user/fgarcia) (Max SendQ exceeded)
2026-05-20 03:29:17 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 03:32:53 +0000nhar(~noah@76.33.110.8)
2026-05-20 03:35:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 03:39:38 +0000nhar(~noah@76.33.110.8) (Ping timeout: 255 seconds)
2026-05-20 03:40:58 +0000weary-traveler(~user@user/user363627) user363627
2026-05-20 03:43:43 +0000gehmehgehgmg
2026-05-20 03:45:14 +0000 <Guest54> sup lads
2026-05-20 03:47:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 03:52:17 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 04:01:00 +0000nhar(~noah@76.33.110.8)
2026-05-20 04:05:56 +0000nhar(~noah@76.33.110.8) (Ping timeout: 256 seconds)
2026-05-20 04:11:57 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 04:12:19 +0000scula(~scula@user/scula) (Server closed connection)
2026-05-20 04:12:36 +0000scula(~scula@user/scula) scula
2026-05-20 04:16:31 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-05-20 04:17:41 +0000 <sm> how's it going Guest54
2026-05-20 04:18:20 +0000Square2(~Square4@user/square) (Ping timeout: 255 seconds)
2026-05-20 04:22:03 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2026-05-20 04:24:10 +0000weary-traveler(~user@user/user363627) user363627
2026-05-20 04:24:49 +0000nhar(~noah@76.33.110.8)
2026-05-20 04:27:01 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-05-20 04:28:47 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 04:29:21 +0000 <Guest54> Doing great sm. Both the haskell mooc and learn a haskell for a greater good recommended this chat. Not sure if I am supposed to type on here, cuz I see a bunch of people joining but nobody typing lol
2026-05-20 04:33:11 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-05-20 04:36:51 +0000michalz(~michalz@185.246.207.203)
2026-05-20 04:39:20 +0000mjrosenb(~mjrosenb@pool-71-190-143-170.nycmny.fios.verizon.net) (Ping timeout: 245 seconds)
2026-05-20 04:40:16 +0000tnt1(~Thunderbi@user/tnt1) tnt1
2026-05-20 04:41:52 +0000nhar(~noah@76.33.110.8) (Ping timeout: 245 seconds)
2026-05-20 04:42:38 +0000nhar(~noah@76.33.110.8)
2026-05-20 04:42:49 +0000 <jreicher> We're here just waiting for someone to type. ;)
2026-05-20 04:43:02 +0000takuan(~takuan@d8D86B9E9.access.telenet.be)
2026-05-20 04:44:08 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 04:48:57 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 04:50:12 +0000 <EvanR> waits for more typing
2026-05-20 04:50:24 +0000 <EvanR> we're dependent [on] typing
2026-05-20 04:51:57 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2026-05-20 04:57:16 +0000Adran(~adran@botters/adran) (Server closed connection)
2026-05-20 04:58:29 +0000Adran(~adran@botters/adran) Adran
2026-05-20 04:59:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 04:59:55 +0000puke(~puke@user/puke) (Read error: error:0A000139:SSL routines::record layer failure)
2026-05-20 05:01:27 +0000puke(~puke@user/puke) puke
2026-05-20 05:04:41 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-05-20 05:08:18 +0000ricardomaps(~ricardoma@2804:14d:a040:81ea:39aa:a5b:9720:46b3)
2026-05-20 05:11:32 +0000weary-traveler(~user@user/user363627) user363627
2026-05-20 05:12:56 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 05:14:43 +0000machinedgod(~machinedg@d172-219-48-230.abhsia.telus.net) (Ping timeout: 264 seconds)
2026-05-20 05:16:36 +0000puke(~puke@user/puke) (Read error: error:0A000139:SSL routines::record layer failure)
2026-05-20 05:17:01 +0000puke(~puke@user/puke) puke
2026-05-20 05:19:22 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 05:31:05 +0000merijn(~merijn@62.45.136.136) merijn
2026-05-20 05:32:43 +0000Vajb(~Vajb@n627xuppmk36bl2vbls-1.v6.elisa-mobile.fi)
2026-05-20 05:35:12 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 245 seconds)
2026-05-20 05:35:30 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2026-05-20 05:45:15 +0000layline_layline-away
2026-05-20 05:46:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 05:51:14 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-05-20 05:55:54 +0000weary-traveler(~user@user/user363627) user363627
2026-05-20 05:55:55 +0000synchromesh(~john@2406:5a00:247e:1500:cb6:d4f7:ed0e:5cdb) (Read error: Connection reset by peer)
2026-05-20 05:56:46 +0000Inline(~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) (Quit: KVIrc 5.2.8 Quasar http://www.kvirc.net/)
2026-05-20 05:56:59 +0000synchromesh(~john@2406:5a00:247e:1500:cb6:d4f7:ed0e:5cdb) synchromesh
2026-05-20 06:01:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 06:02:02 +0000humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2026-05-20 06:03:38 +0000Inline(~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) Inline
2026-05-20 06:03:49 +0000ricardomaps(~ricardoma@2804:14d:a040:81ea:39aa:a5b:9720:46b3) (Ping timeout: 272 seconds)
2026-05-20 06:04:39 +0000dolio(~dolio@130.44.140.168) (Quit: ZNC 1.10.1 - https://znc.in)
2026-05-20 06:06:27 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 06:13:56 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 06:15:15 +0000dolio(~dolio@130.44.140.168) dolio
2026-05-20 06:18:41 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-05-20 06:24:42 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2026-05-20 06:29:44 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 06:34:22 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 06:38:59 +0000czan(~czan@user/mange) (Quit: Quittin' time!)
2026-05-20 06:41:02 +0000puke(~puke@user/puke) (Read error: error:0A000139:SSL routines::record layer failure)
2026-05-20 06:41:27 +0000puke(~puke@user/puke) puke
2026-05-20 06:45:32 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 06:46:11 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 252 seconds)
2026-05-20 06:50:12 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 06:55:05 +0000weary-traveler(~user@user/user363627) user363627
2026-05-20 06:56:45 +0000layline-away(~layline@149.154.26.166) (Quit: ZZZzzz…)
2026-05-20 07:01:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 07:01:38 +0000puke(~puke@user/puke) (Read error: error:0A000139:SSL routines::record layer failure)
2026-05-20 07:02:03 +0000puke(~puke@user/puke) puke
2026-05-20 07:08:02 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-05-20 07:09:37 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2026-05-20 07:10:44 +0000oats(~oats@user/oats) (Ping timeout: 245 seconds)
2026-05-20 07:11:14 +0000oats(~oats@user/oats) oats
2026-05-20 07:11:53 +0000ft(~ft@p4fc2aedc.dip0.t-ipconnect.de) (Quit: leaving)
2026-05-20 07:12:50 +0000nisstyre(wes@user/nisstyre) (Ping timeout: 248 seconds)
2026-05-20 07:14:57 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 07:19:41 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-05-20 07:26:37 +0000nisstyre(wes@user/nisstyre) nisstyre
2026-05-20 07:29:35 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-05-20 07:36:44 +0000__monty__(~toonn@user/toonn) toonn
2026-05-20 07:38:56 +0000Pozyomka(~pyon@user/pyon) (Quit: brb)
2026-05-20 07:41:33 +0000Digitdetects some type of puns [ ... or puns of type]
2026-05-20 07:47:21 +0000CiaoSen(~Jura@2a02:3035:be7:9381:10ff:25ff:fe34:6c4a) CiaoSen
2026-05-20 07:47:55 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-20 07:53:15 +0000chele(~chele@user/chele) chele
2026-05-20 07:57:12 +0000puke(~puke@user/puke) (Read error: error:0A000139:SSL routines::record layer failure)
2026-05-20 07:57:13 +0000gehmehgeh(~user@user/gehmehgeh) gehmehgeh
2026-05-20 07:57:29 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2026-05-20 07:57:41 +0000puke(~puke@user/puke) puke
2026-05-20 07:58:40 +0000merijn(~merijn@77.242.116.146) merijn
2026-05-20 08:01:34 +0000gehmehgehgmg
2026-05-20 08:06:02 +0000tnt2(~Thunderbi@user/tnt1) tnt1
2026-05-20 08:06:59 +0000szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2026-05-20 08:07:03 +0000tnt1(~Thunderbi@user/tnt1) (Ping timeout: 265 seconds)
2026-05-20 08:07:04 +0000tnt2tnt1
2026-05-20 08:10:37 +0000emmanuelux(~em@user/emmanuelux) (Quit: bye)
2026-05-20 08:12:59 +0000notzmv(~umar@user/notzmv) notzmv
2026-05-20 08:13:55 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2026-05-20 08:15:17 +0000bggd_(~bgg@2a01:e0a:fd5:f510:8bd7:8b66:ece0:ae9f)
2026-05-20 08:15:35 +0000bggd(~bgg@user/bggd) (Read error: Connection reset by peer)
2026-05-20 08:21:33 +0000FANTOM(~fantom@212.228.182.72) (Ping timeout: 265 seconds)
2026-05-20 08:21:36 +0000CiaoSen(~Jura@2a02:3035:be7:9381:10ff:25ff:fe34:6c4a) (Quit: CiaoSen)
2026-05-20 08:23:37 +0000puke(~puke@user/puke) (Read error: error:0A000139:SSL routines::record layer failure)
2026-05-20 08:24:02 +0000puke(~puke@user/puke) puke
2026-05-20 08:26:28 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2026-05-20 08:27:45 +0000weary-traveler(~user@user/user363627) user363627
2026-05-20 08:29:57 +0000FANTOM(~fantom@212.228.182.72)
2026-05-20 08:30:19 +0000puke(~puke@user/puke) (Read error: error:0A000139:SSL routines::record layer failure)
2026-05-20 08:30:44 +0000puke(~puke@user/puke) puke
2026-05-20 08:33:38 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 265 seconds)
2026-05-20 08:44:35 +0000divlamir(~divlamir@user/divlamir) (Read error: Connection reset by peer)
2026-05-20 08:45:13 +0000divlamir(~divlamir@user/divlamir) divlamir
2026-05-20 08:45:20 +0000jonnie(~jonnie@user/jonnie) (Remote host closed the connection)
2026-05-20 08:45:38 +0000jonnie(~jonnie@user/jonnie) jonnie
2026-05-20 08:45:55 +0000jonnie(~jonnie@user/jonnie) (Remote host closed the connection)
2026-05-20 08:46:59 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds)
2026-05-20 08:48:15 +0000jonnie(~jonnie@user/jonnie) jonnie
2026-05-20 08:50:05 +0000dhil(~dhil@5.151.29.138) dhil
2026-05-20 08:50:16 +0000Enrico63(~Enrico63@85.255.233.164) Enrico63
2026-05-20 08:54:34 +0000CiaoSen(~Jura@dynamic-046-114-156-027.46.114.pool.telefonica.de) CiaoSen
2026-05-20 08:57:17 +0000nhar(~noah@76.33.110.8) (Ping timeout: 245 seconds)
2026-05-20 09:01:34 +0000Pozyomka_(~pyon@user/pyon) pyon
2026-05-20 09:01:57 +0000Pozyomka(~pyon@user/pyon) (Read error: Connection reset by peer)
2026-05-20 09:05:58 +0000 <mesaoptimizer> Is the type of every expression in Haskell determined at compile-time, or have things changed by now
2026-05-20 09:07:17 +0000 <mesaoptimizer> for example, if there are LANGUAGE pragmas commonly used that make it so that some expressions only can have a determined type at compile-time, then I'd say that Haskell types aren't a manifest attribute (in the terminology of Christopher Strachey)
2026-05-20 09:08:59 +0000nhar(~noah@76.33.110.8)
2026-05-20 09:11:46 +0000acidjnk_new3(~acidjnk@p200300d6e700e5338caa1342eecc427b.dip0.t-ipconnect.de) acidjnk
2026-05-20 09:13:45 +0000nhar(~noah@76.33.110.8) (Ping timeout: 265 seconds)
2026-05-20 09:16:16 +0000 <mesaoptimizer> next, does anybody actually use the following functions in practice or do they simply exist for pedagogical purposes: lookup, zip, uncurry, curry, min, max, fst, snd
2026-05-20 09:18:07 +0000xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 245 seconds)
2026-05-20 09:26:56 +0000danza(~danza@user/danza) danza
2026-05-20 09:27:31 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-05-20 09:32:07 +0000CiaoSen(~Jura@dynamic-046-114-156-027.46.114.pool.telefonica.de) (Ping timeout: 264 seconds)
2026-05-20 09:37:25 +0000 <merijn> zip, min, max, fst, and snd are all used all the time. curry/uncurry less frequently but still a lot
2026-05-20 09:37:53 +0000 <merijn> If you're using lookup you should probably be using lookup of a different datatype
2026-05-20 09:39:36 +0000 <merijn> mesaoptimizer: As a type theory pedantist it's impossible for "type of every expression is determined at compile time", because the entire definition of types is that they're static derived properties of source code, meaning that they're static derivability at compile time is a hard required of types
2026-05-20 09:40:13 +0000nhar(~noah@76.33.110.8)
2026-05-20 09:40:32 +0000 <merijn> mesaoptimizer: As opposed to what the dynamic languages have popularized as "types", which is merely a runtime tag indicated what kind of data a value has
2026-05-20 09:43:57 +0000Guest54(~Guest54@2600:1700:4c00:68f0:c786:9a89:b897:4427) (Ping timeout: 245 seconds)
2026-05-20 09:44:02 +0000peterbecich(~Thunderbi@71.84.33.135) (Quit: peterbecich)
2026-05-20 09:44:20 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-05-20 09:44:47 +0000nhar(~noah@76.33.110.8) (Ping timeout: 245 seconds)
2026-05-20 09:48:32 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 245 seconds)
2026-05-20 10:02:49 +0000nhar(~noah@76.33.110.8)
2026-05-20 10:06:00 +0000tremon(~tremon@83.80.159.219) tremon
2026-05-20 10:06:02 +0000 <mesaoptimizer> merijn: I agree with that sentiment, but I still am unsure as to whether this holds for Haskell or not
2026-05-20 10:07:00 +0000Pixi`(~Pixi@user/pixi) Pixi
2026-05-20 10:07:28 +0000nhar(~noah@76.33.110.8) (Ping timeout: 256 seconds)
2026-05-20 10:08:10 +0000yin_(~zero@user/zero) zero
2026-05-20 10:08:22 +0000yin(~zero@user/zero) (Ping timeout: 265 seconds)
2026-05-20 10:08:47 +0000yin_yin
2026-05-20 10:08:55 +0000Pixi(~Pixi@user/pixi) (Ping timeout: 272 seconds)
2026-05-20 10:16:34 +0000fun-safe-math(~fun-safe-@97-120-35-225.ptld.qwest.net) (Server closed connection)
2026-05-20 10:16:50 +0000fun-safe-math(~fun-safe-@97-120-35-225.ptld.qwest.net) fun-safe-math
2026-05-20 10:25:47 +0000 <dutchie> Haskell types don't even exist at runtime, do they?
2026-05-20 10:25:53 +0000 <dutchie> it's all just passing around instance dictionaries at most
2026-05-20 10:29:56 +0000bggd_(~bgg@2a01:e0a:fd5:f510:8bd7:8b66:ece0:ae9f) (Remote host closed the connection)
2026-05-20 10:36:20 +0000nhar(~noah@76.33.110.8)
2026-05-20 10:38:48 +0000Square2(~Square4@user/square) Square
2026-05-20 10:39:51 +0000wickedjargon(~user@64.114.24.74) wickedjargon
2026-05-20 10:40:37 +0000nhar(~noah@76.33.110.8) (Ping timeout: 245 seconds)
2026-05-20 10:54:29 +0000nhar(~noah@76.33.110.8)
2026-05-20 10:58:57 +0000nhar(~noah@76.33.110.8) (Ping timeout: 245 seconds)
2026-05-20 11:01:53 +0000fun-safe-math(~fun-safe-@97-120-35-225.ptld.qwest.net) ()
2026-05-20 11:04:02 +0000fun-safe-math(~fun-safe-@97-120-35-225.ptld.qwest.net) fun-safe-math
2026-05-20 11:04:32 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-05-20 11:05:10 +0000danza(~danza@user/danza) (Remote host closed the connection)
2026-05-20 11:09:01 +0000 <gentauro> dutchie: they are. How would you handle the cases for sum types (tagged unions) otherwise?
2026-05-20 11:09:52 +0000 <gentauro> however, the `newtype` "wrapper" gets abstracted away (less memory usage per element)
2026-05-20 11:09:53 +0000wickedjargon(~user@64.114.24.74) (Read error: Connection reset by peer)
2026-05-20 11:10:06 +0000wickedjargon(~user@64.114.24.74) wickedjargon
2026-05-20 11:10:25 +0000 <dutchie> hmm. my interpretation was that e.g. Bool doesn't exist, but True and False do
2026-05-20 11:10:59 +0000 <dutchie> and then the compiler has proven that a value can only be True or False so it knows all cases are covered
2026-05-20 11:13:43 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-20 11:17:53 +0000 <dutchie> https://paste.tomsmeding.com/vXIxg2HR
2026-05-20 11:22:07 +0000 <ski> mesaoptimizer : yes (upto things like polymorphism / existentials. that does not mean they're really determined (as in actually found out) at run-time, though)
2026-05-20 11:24:35 +0000 <ski> e.g. in `map :: (a -> b) -> [a] -> [b]', it is not determined what type the individual input elements (nor the results of calling the callback) "really" has, at compile-time, in the sense that the input elements are determined to have type `a' (and the callback results to have type `b'), but these are abstract/opaque/hidden/forgotten/skolem, only a placeholder name for whichever type the actual elements (and
2026-05-20 11:24:41 +0000 <ski> callback results) will have, in a particular call to `map'
2026-05-20 11:26:02 +0000 <ski> still, they *are* assigned this abstract type (and the input list to have the partially abstract type `[a]'), which is their compile-time type, it's just that it omits some information (generalizes over it, in order to be able to call `map' from different contexts, with different types)
2026-05-20 11:27:15 +0000puke(~puke@user/puke) (Read error: error:0A000139:SSL routines::record layer failure)
2026-05-20 11:27:26 +0000 <mesaoptimizer> that's a very lucid answer (given my current understanding of things), thanks
2026-05-20 11:27:28 +0000 <ski> (of course, you could, if you wanted to, imagine an analysis which tracked each call, to figure out the actual concrete types, and perhaps specialize the code for `map' wrt that. however, this can't be done, in general, in Haskell, due to "polymorphic recursion", and also (if you enable that extensions) existentials)
2026-05-20 11:27:41 +0000puke(~puke@user/puke) puke
2026-05-20 11:27:48 +0000nhar(~noah@76.33.110.8)
2026-05-20 11:28:08 +0000 <ski> still, do note that the type of the elements, `a', is not really found out at run-time, either. or, at least, there are implementations that allow this
2026-05-20 11:28:39 +0000 <mesaoptimizer> implementations of Haskell?
2026-05-20 11:28:46 +0000 <mesaoptimizer> or of type inference?
2026-05-20 11:29:47 +0000 <ski> you *could* have an implementation which passes around information about which actual types are used, when calling polymorphic operations. one use of this would be to perhaps use custom data formats (e.g. not all having the same size) for different data types. so e.g. the data format of `[Char]' could be different from the one of `[Double]', and the code at run-time could use the "type infos" to determine
2026-05-20 11:29:53 +0000 <ski> how large the items in the list are
2026-05-20 11:29:59 +0000 <ski> yes, of Haskell
2026-05-20 11:30:10 +0000 <ski> or, it could be used for a more accurate GC
2026-05-20 11:30:49 +0000 <ski> (not needing to have a general data format that the GC can understand, but so it can look up the data format of the items it encounters)
2026-05-20 11:31:12 +0000 <mesaoptimizer> I see
2026-05-20 11:31:21 +0000 <ski> e.g. the logic/functional programming language Mercury *does* pass around type infos, at run-time, to polymorphic operations, in this fashion
2026-05-20 11:31:22 +0000nhar(~noah@76.33.110.8) (*.net *.split)
2026-05-20 11:31:22 +0000vanishingideal(~vanishing@user/vanishingideal) (*.net *.split)
2026-05-20 11:31:22 +0000fgarcia(~lei@user/fgarcia) (*.net *.split)
2026-05-20 11:31:23 +0000weary-traveler(~user@user/user363627) (*.net *.split)
2026-05-20 11:31:23 +0000merijn(~merijn@77.242.116.146) (*.net *.split)
2026-05-20 11:31:23 +0000chele(~chele@user/chele) (*.net *.split)
2026-05-20 11:31:23 +0000dolio(~dolio@130.44.140.168) (*.net *.split)
2026-05-20 11:31:23 +0000synchromesh(~john@2406:5a00:247e:1500:cb6:d4f7:ed0e:5cdb) (*.net *.split)
2026-05-20 11:31:23 +0000myxos(~myxos@67-1-178-42.tcso.qwest.net) (*.net *.split)
2026-05-20 11:31:23 +0000confusedalex(~confuseda@user/confusedalex) (*.net *.split)
2026-05-20 11:31:23 +0000Moyst(~moyst@user/moyst) (*.net *.split)
2026-05-20 11:31:38 +0000merijn(~merijn@77.242.116.146) merijn
2026-05-20 11:31:47 +0000synchromesh(~john@2406:5a00:247e:1500:cb6:d4f7:ed0e:5cdb) synchromesh
2026-05-20 11:31:48 +0000weary-traveler(~user@user/user363627) user363627
2026-05-20 11:31:52 +0000fgarcia(~lei@user/fgarcia) fgarcia
2026-05-20 11:32:04 +0000myxos(~myxos@67-1-178-42.tcso.qwest.net) myxokephale
2026-05-20 11:32:42 +0000weary-traveler(~user@user/user363627) (Remote host closed the connection)
2026-05-20 11:33:24 +0000 <ski> btw, polymorphic recursion is when a polymorphic operation is recursive, and at least some recursive invokation does *not* use the same unknown type variables as the current call
2026-05-20 11:33:56 +0000 <ski> here's a simple (and a bit silly) example of a polymorhic recursive function
2026-05-20 11:34:28 +0000 <ski> nestedShows :: Show a => [a] -> [String]
2026-05-20 11:34:37 +0000 <ski> nestedShows [ ] = []
2026-05-20 11:34:56 +0000 <ski> nestedShows (x:xs) = show x : nestedShows (map (: []) xs)
2026-05-20 11:35:22 +0000 <ski> note that `xs' has type `[a]', but in the recursive call, `map (: []) xs)' has type `[[a]]'
2026-05-20 11:35:54 +0000 <ski> so, if in the top call, `a' will be `Integer', then in the recursive call, `a' will next be `[Integer]', then `[[Integer]]', and so on
2026-05-20 11:36:37 +0000Moyst(~moyst@user/moyst) Moyst
2026-05-20 11:36:39 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-20 11:36:44 +0000 <ski> and, in this case, because we have a type class constraint, that means that when this is at run-time given an instance method dictionary for `Show Integer', it will then hand off (provide) a dictionary for `Show [Integer]' to the recursive call
2026-05-20 11:36:57 +0000 <ski> iow, it must create a new dictionary, at run-time
2026-05-20 11:37:54 +0000 <ski> most more reasonable examples of polymorphic recursion involve "non-regular (recursive) data types", being data types whose recursion does not pass the same type parameters, e.g.
2026-05-20 11:38:03 +0000 <mauke> > let { foo :: Show a => Int -> a -> String; foo n x | n > 0 = foo (n - 1) (x, x) | otherwise = show x } in foo 2 9
2026-05-20 11:38:04 +0000 <lambdabot> "((9,9),(9,9))"
2026-05-20 11:38:19 +0000dolio(~dolio@130.44.140.168) dolio
2026-05-20 11:38:22 +0000 <mauke> > let { foo :: Show a => Int -> a -> String; foo n x | n > 0 = foo (n - 1) (x, x) | otherwise = show x } in foo 3 9
2026-05-20 11:38:23 +0000 <lambdabot> "(((9,9),(9,9)),((9,9),(9,9)))"
2026-05-20 11:38:47 +0000 <ski> data SwapList a b = Nil | Cons a (SwapList b a) -- `a' and `b' are swapped around, so it's not the same parameter pattern
2026-05-20 11:39:26 +0000 <ski> data PerfectlyBalancedBinaryTree a = Leaves a | Double (PerfectlyBalancedBinaryTree (a,a)) -- here we pass `(a,a)' in place of `a'
2026-05-20 11:39:54 +0000 <ski> most interesting functions (iow recursive) on these, will need to be polymorphic recursive
2026-05-20 11:40:49 +0000confusedalex(~confuseda@user/confusedalex) confusedalex
2026-05-20 11:40:54 +0000 <ski> otoh, `map' from above is *monomorphic* recursive (even though it's a polymorphic function), because, *within* the body of `map', we can think of it as being monomorphic, in the unknown types `a' and `b', recursive call calling on those *same* unknown types
2026-05-20 11:42:27 +0000puke(~puke@user/puke) (Read error: error:0A000139:SSL routines::record layer failure)
2026-05-20 11:42:51 +0000 <mauke> you can tell map uses monomorphic recursion because it can be implemented in C++ templates :-)
2026-05-20 11:42:52 +0000puke(~puke@user/puke) puke
2026-05-20 11:43:17 +0000fgarcia(~lei@user/fgarcia) (Ping timeout: 272 seconds)
2026-05-20 11:46:35 +0000 <ski> (in System F, when invoking a polymorphic operation, you are explicitly applying it to the types to use in place of the type parameters, in Haskell (with extensions) you can write this as e.g. `map @Int @Bool (> 4) [2,3,5,7]'. for monomorphic recursion, you can imagine `map' being defined as `map @a @b f = loop where loop :: [a] -> [b]; loop [ ] = []; loop (x:xs) = f x : loop xs', where you do *not* need
2026-05-20 11:46:41 +0000 <ski> to pass around the (unchanging) type parameters `a' and `b' (so `loop' is monomorphic .. i also factored out the unchanging `f' while i was at it), while for the `nestedShows' you'd have something like `nestedShows @a @{show_a} (x:xs) = show @a @{show_a} : nestedShows @[a] @{mkShowList show_a} (...)')
2026-05-20 11:49:00 +0000 <ski> (btw, it *is* also possible, in some ways, to learn more about the type, namely when using GADTs. doing a `case'-`of' analysis may then, in each appropriate branch, provide more information (at compilte-time) about abstract type parameters like `a' and `b')
2026-05-20 11:49:02 +0000weary-traveler(~user@user/user363627) user363627
2026-05-20 11:51:47 +0000aka_dude(~aka_dude@192.71.166.120)
2026-05-20 11:55:28 +0000nhar(~noah@76.33.110.8)
2026-05-20 11:59:32 +0000Pozyomka_(~pyon@user/pyon) (Quit: WeeChat 4.9.0)
2026-05-20 11:59:51 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-20 12:00:02 +0000nhar(~noah@76.33.110.8) (Ping timeout: 255 seconds)
2026-05-20 12:32:03 +0000nhar(~noah@76.33.110.8)
2026-05-20 12:35:12 +0000Deltaspace(~Deltaspac@user/Deltaspace) (Remote host closed the connection)
2026-05-20 12:35:34 +0000Deltaspace(~Deltaspac@178.252.83.109)
2026-05-20 12:36:19 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-05-20 12:36:25 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Client Quit)
2026-05-20 12:37:00 +0000nhar(~noah@76.33.110.8) (Ping timeout: 268 seconds)
2026-05-20 12:42:49 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 272 seconds)
2026-05-20 12:50:49 +0000Deltaspace(~Deltaspac@178.252.83.109) (Read error: Connection reset by peer)
2026-05-20 12:51:11 +0000Deltaspace(~Deltaspac@178.252.83.109)
2026-05-20 12:51:16 +0000Deltaspace(~Deltaspac@178.252.83.109) (Read error: Connection reset by peer)
2026-05-20 12:51:38 +0000Deltaspace(~Deltaspac@178.252.83.109)
2026-05-20 12:53:09 +0000comerijn(~merijn@77.242.116.146) merijn
2026-05-20 12:55:50 +0000merijn(~merijn@77.242.116.146) (Ping timeout: 255 seconds)
2026-05-20 13:00:46 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-20 13:05:06 +0000nhar(~noah@76.33.110.8)
2026-05-20 13:09:29 +0000nhar(~noah@76.33.110.8) (Ping timeout: 245 seconds)
2026-05-20 13:22:06 +0000spew(~spew@user/spew) spew
2026-05-20 13:23:38 +0000sus03228(zero@user/zeromomentum) (Quit: the lounge - https://webirc.envs.net)
2026-05-20 13:24:48 +0000sus03228(zero@user/zeromomentum) zeromomentum
2026-05-20 13:27:58 +0000sus03228(zero@user/zeromomentum) (Client Quit)
2026-05-20 13:28:40 +0000spew(~spew@user/spew) (Ping timeout: 255 seconds)
2026-05-20 13:29:07 +0000sus03228(zero@user/zeromomentum) zeromomentum
2026-05-20 13:29:52 +0000 <dutchie> https://byorgey.wordpress.com/2019/02/16/worstsort/ my favourite example of polymorphic recursion
2026-05-20 13:32:16 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 255 seconds)
2026-05-20 13:38:04 +0000tomku(~tomku@user/tomku) (Server closed connection)
2026-05-20 13:38:19 +0000tomku(~tomku@user/tomku) tomku
2026-05-20 13:38:53 +0000nhar(~noah@76.33.110.8)
2026-05-20 13:39:47 +0000 <ski> nice one
2026-05-20 13:39:57 +0000spew(~spew@user/spew) spew
2026-05-20 13:44:41 +0000nhar(~noah@76.33.110.8) (Ping timeout: 248 seconds)
2026-05-20 13:53:21 +0000xff0x(~xff0x@2405:6580:b080:900:d2e4:87e2:8bc2:4906)
2026-05-20 13:54:50 +0000puke(~puke@user/puke) (Read error: error:0A000139:SSL routines::record layer failure)
2026-05-20 13:55:15 +0000puke(~puke@user/puke) puke
2026-05-20 13:56:47 +0000puke(~puke@user/puke) (Read error: error:0A000139:SSL routines::record layer failure)
2026-05-20 13:57:04 +0000puke(~puke@user/puke) puke
2026-05-20 14:05:04 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2026-05-20 14:08:41 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 14:09:31 +0000Inline(~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) (Quit: KVIrc 5.2.8 Quasar http://www.kvirc.net/)
2026-05-20 14:13:45 +0000nhar(~noah@76.33.110.8)
2026-05-20 14:18:59 +0000spew(~spew@user/spew) (Read error: Connection reset by peer)
2026-05-20 14:19:54 +0000nhar(~noah@76.33.110.8) (Ping timeout: 245 seconds)
2026-05-20 14:31:09 +0000mjrosenb(~mjrosenb@pool-71-183-227-194.nycmny.fios.verizon.net)
2026-05-20 14:31:17 +0000Pozyomka(~pyon@user/pyon) (Quit: brb)
2026-05-20 14:35:23 +0000haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2026-05-20 14:35:23 +0000haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2026-05-20 14:35:23 +0000haritz(~hrtz@user/haritz) haritz
2026-05-20 14:35:45 +0000wickedjargon(~user@64.114.24.74) (Remote host closed the connection)
2026-05-20 14:39:43 +0000Yumemi(~Yumemi@chamoin.net) (Quit: .)
2026-05-20 14:41:32 +0000Yumemi(~Yumemi@chamoin.net) Yumemi
2026-05-20 14:51:08 +0000nhar(~noah@76.33.110.8)
2026-05-20 14:51:17 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-20 14:54:23 +0000Pozyomka(~pyon@user/pyon) (Client Quit)
2026-05-20 14:55:52 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-20 14:55:57 +0000nhar(~noah@76.33.110.8) (Ping timeout: 265 seconds)
2026-05-20 14:57:52 +0000machinedgod(~machinedg@d172-219-48-230.abhsia.telus.net) machinedgod
2026-05-20 15:00:47 +0000nhar(~noah@76.33.110.8)
2026-05-20 15:05:37 +0000nhar(~noah@76.33.110.8) (Ping timeout: 265 seconds)
2026-05-20 15:08:24 +0000nhar(~noah@76.33.110.8)
2026-05-20 15:08:28 +0000Enrico63(~Enrico63@85.255.233.164) (Quit: Client closed)
2026-05-20 15:17:40 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2026-05-20 15:26:51 +0000nhar(~noah@76.33.110.8) (Ping timeout: 272 seconds)
2026-05-20 15:31:09 +0000nhar(~noah@76.33.110.8)
2026-05-20 15:37:40 +0000ft(~ft@p4fc2aedc.dip0.t-ipconnect.de) ft
2026-05-20 15:39:40 +0000synchromesh(~john@2406:5a00:247e:1500:cb6:d4f7:ed0e:5cdb) (Read error: Connection reset by peer)
2026-05-20 15:40:12 +0000synchromesh(~john@2406:5a00:247e:1500:70df:5a2a:dd3a:dd1a) synchromesh
2026-05-20 15:46:37 +0000Inline(~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) Inline
2026-05-20 15:48:11 +0000nhar(~noah@76.33.110.8) (Ping timeout: 255 seconds)
2026-05-20 15:50:16 +0000comerijn(~merijn@77.242.116.146) (Ping timeout: 276 seconds)
2026-05-20 15:54:10 +0000rainbyte(~rainbyte@181.47.219.3) (Read error: Connection reset by peer)
2026-05-20 15:57:15 +0000rainbyte(~rainbyte@181.47.219.3) rainbyte
2026-05-20 15:57:28 +0000Inline(~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) (No boundaries on the net!)
2026-05-20 16:00:08 +0000layline_(~layline@149.154.26.166) layline
2026-05-20 16:02:47 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2026-05-20 16:08:45 +0000m(~travltux@user/travltux) (Quit: WeeChat 4.7.2)
2026-05-20 16:09:01 +0000nhar(~noah@76.33.110.8)
2026-05-20 16:10:22 +0000m(~travltux@user/travltux) travltux
2026-05-20 16:10:51 +0000euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2026-05-20 16:11:03 +0000poscat0x04(~poscat@user/poscat) poscat
2026-05-20 16:12:18 +0000poscat(~poscat@user/poscat) (Ping timeout: 246 seconds)
2026-05-20 16:19:52 +0000Pixi`Pixi
2026-05-20 16:21:34 +0000euphores(~SASL_euph@user/euphores) euphores
2026-05-20 16:26:26 +0000nhar(~noah@76.33.110.8) (Ping timeout: 252 seconds)
2026-05-20 16:30:05 +0000nhar(~noah@76.33.110.8)
2026-05-20 16:37:21 +0000jreicher(~joelr@user/jreicher) (Read error: Connection reset by peer)
2026-05-20 16:37:29 +0000Square2(~Square4@user/square) (Ping timeout: 248 seconds)
2026-05-20 16:38:10 +0000jreicher(~joelr@user/jreicher) jreicher
2026-05-20 16:38:50 +0000Googulator(~Googulato@94-21-138-77.pool.digikabel.hu) (Quit: Client closed)
2026-05-20 16:39:05 +0000Googulator(~Googulato@94-21-138-77.pool.digikabel.hu)
2026-05-20 16:39:09 +0000Square2(~Square4@user/square) Square
2026-05-20 16:39:29 +0000wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2026-05-20 16:42:00 +0000 <nhar> 
2026-05-20 16:42:21 +0000layline_layline-away
2026-05-20 16:42:36 +0000layline-away(~layline@149.154.26.166) (Quit: ZZZzzz…)
2026-05-20 16:43:34 +0000layline_(~layline@149.154.26.166) layline
2026-05-20 16:43:45 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 16:44:02 +0000nhar(~noah@76.33.110.8) (Quit: Lost terminal)
2026-05-20 16:45:50 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
2026-05-20 16:46:25 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 16:47:36 +0000tnt1(~Thunderbi@user/tnt1) (Ping timeout: 265 seconds)
2026-05-20 16:48:39 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 16:49:01 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2026-05-20 16:59:33 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 17:00:28 +0000emilym(~Thunderbi@user/emilym) emilym
2026-05-20 17:03:34 +0000ricardomaps(~ricardoma@2804:14d:a040:81ea:2359:bd0d:70dc:9384)
2026-05-20 17:04:39 +0000ricardomaps(~ricardoma@2804:14d:a040:81ea:2359:bd0d:70dc:9384) (Client Quit)
2026-05-20 17:05:01 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-05-20 17:05:40 +0000emilym(~Thunderbi@user/emilym) (Ping timeout: 276 seconds)
2026-05-20 17:10:42 +0000bggd(~bgg@user/bggd) bggd
2026-05-20 17:12:08 +0000layline__(~layline@149.154.26.47) layline
2026-05-20 17:12:46 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 17:15:02 +0000layline_(~layline@149.154.26.166) (Ping timeout: 255 seconds)
2026-05-20 17:15:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 17:18:55 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
2026-05-20 17:22:31 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-05-20 17:31:35 +0000Pozyomka(~pyon@user/pyon) (Quit: brb)
2026-05-20 17:33:24 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 17:38:32 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-05-20 17:42:42 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 17:45:44 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2026-05-20 17:46:29 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-20 17:46:53 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 17:48:43 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-20 17:51:41 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-05-20 17:56:40 +0000__monty__(~toonn@user/toonn) (Ping timeout: 256 seconds)
2026-05-20 18:00:55 +0000dhil(~dhil@5.151.29.138) (Ping timeout: 264 seconds)
2026-05-20 18:02:38 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 18:03:52 +0000Garbanzo(~Garbanzo@2602:304:6eac:dc10::49) (Remote host closed the connection)
2026-05-20 18:07:38 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-05-20 18:10:35 +0000 <monochrom> Haha worstsort is funny.
2026-05-20 18:13:01 +0000pierluc-codes34(~pierlucco@modemcable092.154-83-70.mc.videotron.ca)
2026-05-20 18:18:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 18:23:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-05-20 18:32:53 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 255 seconds)
2026-05-20 18:34:13 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 18:35:48 +0000tabaqui(~tabaqui@167.71.80.236) tabaqui
2026-05-20 18:39:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2026-05-20 18:40:21 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-20 18:42:16 +0000 <geekosaur> ackermann worstsort, even ☺
2026-05-20 18:42:39 +0000s3(~s3@user/bn) bn
2026-05-20 18:45:56 +0000Pozyomka(~pyon@user/pyon) (Quit: brb)
2026-05-20 18:46:07 +0000layline__layline-away
2026-05-20 18:48:41 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-20 18:49:59 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 18:53:14 +0000pierluc-codes34(~pierlucco@modemcable092.154-83-70.mc.videotron.ca) (Quit: The Lounge - https://thelounge.chat)
2026-05-20 18:54:22 +0000pierluc-codes34(~pierlucco@modemcable092.154-83-70.mc.videotron.ca)
2026-05-20 18:54:45 +0000noscript(~noscript@user/earldouglas) (Quit: WeeChat 4.9.0)
2026-05-20 18:57:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds)
2026-05-20 18:59:19 +0000 <tomsmeding> dutchie: I love that!
2026-05-20 19:05:16 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 255 seconds)
2026-05-20 19:08:04 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 19:13:05 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-05-20 19:24:01 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 19:24:41 +0000eron(~eron@179.118.254.196) lidenbrock
2026-05-20 19:28:45 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: jksdvks)
2026-05-20 19:29:07 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-05-20 19:33:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 19:34:54 +0000Square2(~Square4@user/square) (Ping timeout: 245 seconds)
2026-05-20 19:37:00 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-20 19:42:43 +0000target_i(~target_i@user/target-i/x-6023099) target_i
2026-05-20 19:46:02 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-05-20 19:50:22 +0000s4msung(wUY4lAp8H3@user/s4msung) (Quit: s4msung)
2026-05-20 19:50:22 +0000noctuks(4qNwsywqoM@user/noctux) (Quit: WeeChat 4.9.0)
2026-05-20 19:50:22 +0000yushyin(he1AwRbeNM@karif.server-speed.net) (Quit: WeeChat 4.9.0)
2026-05-20 19:50:40 +0000eron(~eron@179.118.254.196) (Quit: Client closed)
2026-05-20 19:51:04 +0000noctuks(IbgdqiR86O@user/noctux) noctux
2026-05-20 19:51:08 +0000yushyin(ZmXNykXtV9@karif.server-speed.net) yushyin
2026-05-20 19:51:08 +0000s4msung(9dqUWZ8Tye@user/s4msung) s4msung
2026-05-20 19:53:38 +0000vanishingideal(~vanishing@user/vanishingideal) (*.net *.split)
2026-05-20 19:53:38 +0000pierluc-codes34(~pierlucco@modemcable092.154-83-70.mc.videotron.ca) (*.net *.split)
2026-05-20 19:53:38 +0000s3(~s3@user/bn) (*.net *.split)
2026-05-20 19:53:38 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (*.net *.split)
2026-05-20 19:53:38 +0000layline-away(~layline@149.154.26.47) (*.net *.split)
2026-05-20 19:53:38 +0000poscat0x04(~poscat@user/poscat) (*.net *.split)
2026-05-20 19:53:38 +0000ft(~ft@p4fc2aedc.dip0.t-ipconnect.de) (*.net *.split)
2026-05-20 19:53:38 +0000Yumemi(~Yumemi@chamoin.net) (*.net *.split)
2026-05-20 19:53:38 +0000xff0x(~xff0x@2405:6580:b080:900:d2e4:87e2:8bc2:4906) (*.net *.split)
2026-05-20 19:53:39 +0000weary-traveler(~user@user/user363627) (*.net *.split)
2026-05-20 19:53:39 +0000Moyst(~moyst@user/moyst) (*.net *.split)
2026-05-20 19:53:39 +0000myxos(~myxos@67-1-178-42.tcso.qwest.net) (*.net *.split)
2026-05-20 19:53:39 +0000Pixi(~Pixi@user/pixi) (*.net *.split)
2026-05-20 19:53:39 +0000divlamir(~divlamir@user/divlamir) (*.net *.split)
2026-05-20 19:53:39 +0000Adran(~adran@botters/adran) (*.net *.split)
2026-05-20 19:53:40 +0000takuan(~takuan@d8D86B9E9.access.telenet.be) (*.net *.split)
2026-05-20 19:53:40 +0000vgtw(~vgtw@user/vgtw) (*.net *.split)
2026-05-20 19:53:48 +0000poscat(~poscat@user/poscat) poscat
2026-05-20 19:53:52 +0000takuan(~takuan@d8D86B9E9.access.telenet.be)
2026-05-20 19:53:56 +0000Pozyomka(~pyon@user/pyon) (Quit: WeeChat 4.9.0)
2026-05-20 19:54:01 +0000vgtw(~vgtw@user/vgtw) vgtw
2026-05-20 19:54:15 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-20 19:54:20 +0000myxos(~myxos@67-1-178-42.tcso.qwest.net) myxokephale
2026-05-20 19:54:22 +0000xff0x(~xff0x@ai070051.d.east.v6connect.net)
2026-05-20 19:54:40 +0000Adran(~adran@botters/adran) Adran
2026-05-20 19:55:00 +0000layline_(~layline@149.154.26.47) layline
2026-05-20 19:55:03 +0000s3(~s3@user/bn) bn
2026-05-20 19:55:47 +0000divlamir(~divlamir@user/divlamir) divlamir
2026-05-20 19:55:57 +0000Yumemi(~Yumemi@chamoin.net) Yumemi
2026-05-20 19:56:22 +0000pierluc-codes34(~pierlucco@modemcable092.154-83-70.mc.videotron.ca)
2026-05-20 19:56:37 +0000 <yin> isn't there a `liftA2 (.)` function?
2026-05-20 19:57:46 +0000Deltaspace(~Deltaspac@178.252.83.109) (Remote host closed the connection)
2026-05-20 19:57:50 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 19:58:08 +0000Deltaspace(~Deltaspac@178.252.83.109)
2026-05-20 19:58:47 +0000ft(~ft@p200300cf3f0675000323ceaf8e2785c3.dip0.t-ipconnect.de) ft
2026-05-20 19:58:51 +0000Moyst(~moyst@user/moyst) Moyst
2026-05-20 19:58:54 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-20 19:58:57 +0000Logio(em@kapsi.fi) Logio
2026-05-20 20:02:23 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 20:03:41 +0000Inline(~noOne@ipservice-092-208-182-236.092.208.pools.vodafone-ip.de) Inline
2026-05-20 20:04:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-05-20 20:05:48 +0000A_Dragon(A_D@libera/staff/dragon) ad
2026-05-20 20:06:14 +0000 <tomsmeding> :t liftA2 (.)
2026-05-20 20:06:19 +0000 <lambdabot> Applicative f => f (b -> c) -> f (a -> b) -> f (a -> c)
2026-05-20 20:06:36 +0000gAy_Dragon(A_D@libera/staff/dragon) (Killed (A_Dragon (You've stolen meself from me, im here to take meself back)))
2026-05-20 20:06:38 +0000A_DragongAy_Dragon
2026-05-20 20:06:47 +0000 <tomsmeding> 'liftA2 (.)' feels very much like the way you would express this
2026-05-20 20:10:54 +0000Square(~Square@user/square) Square
2026-05-20 20:11:25 +0000nicole(ilbelkyr@libera/staff/ilbelkyr) (Ping timeout: 600 seconds)
2026-05-20 20:14:42 +0000DetourNe-(~DetourNet@user/DetourNetworkUK) DetourNetworkUK
2026-05-20 20:14:42 +0000DetourNetworkUK(~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer)
2026-05-20 20:15:52 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 20:17:01 +0000DetourNe-DetourNetworkUK
2026-05-20 20:17:02 +0000layline_layline-away
2026-05-20 20:21:19 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2026-05-20 20:23:15 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2026-05-20 20:24:16 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 20:24:48 +0000 <EvanR> that's a good one
2026-05-20 20:25:07 +0000 <EvanR> I feel like ekmett should appear and explain that in terms of higher category theory
2026-05-20 20:26:12 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2026-05-20 20:27:42 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 20:28:14 +0000 <tomsmeding> function composition lifted into a functor doesn't feel so exotic TBH
2026-05-20 20:31:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 20:32:30 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
2026-05-20 20:36:46 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds)
2026-05-20 20:39:21 +0000layline-away(~layline@149.154.26.47) (Quit: ZZZzzz…)
2026-05-20 20:40:07 +0000michalz(~michalz@185.246.207.203) (Remote host closed the connection)
2026-05-20 20:47:17 +0000merijn(~merijn@62.45.136.136) merijn
2026-05-20 20:48:35 +0000takuan(~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 272 seconds)
2026-05-20 20:50:18 +0000bb010g(~bb010g@wank.party) (Remote host closed the connection)
2026-05-20 20:50:48 +0000bb010g(~bb010g@wank.party) bb010g
2026-05-20 20:50:58 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 20:51:37 +0000 <EvanR> category theory always boils down to something trivial baked in esoteric jargon so yeah xD
2026-05-20 20:51:59 +0000merijn(~merijn@62.45.136.136) (Ping timeout: 245 seconds)
2026-05-20 20:52:20 +0000 <tusko> this is much easier to see with categories
2026-05-20 20:52:49 +0000 <Rembane> \o/ More arrows! \o/
2026-05-20 20:53:38 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2026-05-20 21:02:30 +0000kimiamania40(~67ff9c51@user/kimiamania) (Quit: PegeLinux)
2026-05-20 21:02:59 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 21:03:29 +0000kimiamania408(~67ff9c51@user/kimiamania) kimiamania
2026-05-20 21:05:16 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 21:05:29 +0000 <yin> yeah it's https://hackage-content.haskell.org/package/semigroupoids-6.0.2/docs/Data-Functor-Apply.html#v:-60…
2026-05-20 21:05:35 +0000 <yin> yay kmett
2026-05-20 21:06:18 +0000 <jaror> that doesn't have the same type
2026-05-20 21:07:42 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-05-20 21:07:54 +0000emmanuelux(~em@user/emmanuelux) emmanuelux
2026-05-20 21:08:33 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2026-05-20 21:08:44 +0000 <yin> right my bad
2026-05-20 21:08:45 +0000 <EvanR> composition vs application
2026-05-20 21:08:51 +0000 <EvanR> rookie mistake
2026-05-20 21:09:04 +0000 <yin> i am rookie
2026-05-20 21:09:37 +0000 <yin> speaking of which, i have a possibly strange queston. can we have "phantom class constraints"?
2026-05-20 21:10:32 +0000vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 244 seconds)
2026-05-20 21:11:42 +0000 <jaror> I'm not sure what that would mean
2026-05-20 21:12:10 +0000 <yin> i'm working on an example
2026-05-20 21:13:08 +0000 <yin> f :: forall b. Bounded b => Int
2026-05-20 21:13:10 +0000 <yin> f = length ([minBound..maxBound] :: [c])
2026-05-20 21:13:19 +0000 <yin> does this make any kind of sense?
2026-05-20 21:13:44 +0000 <yin> (that last c should be a b)
2026-05-20 21:13:57 +0000 <jaror> Yes, you can have that, but you have to somehow specify what the type 'b' is
2026-05-20 21:14:19 +0000 <yin> well i don't want to specify what the type is
2026-05-20 21:14:33 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 21:14:58 +0000 <yin> i want the user of my library to be able to use their custom types
2026-05-20 21:15:00 +0000 <jaror> Also not at the use-site?
2026-05-20 21:15:03 +0000 <jaror> Ah
2026-05-20 21:15:19 +0000 <jaror> Yes, I mean your users will have to specify what 'b' is when they use such a function
2026-05-20 21:15:48 +0000 <jaror> You can write that function as is if you enable AllowAmbiguousTypes
2026-05-20 21:16:07 +0000 <jaror> And then your users will have to do 'f @SomeCustomType' to call your function.
2026-05-20 21:16:50 +0000 <jaror> Alternatively you can since recently enable RequiredTypeArguments and write it as
2026-05-20 21:16:57 +0000 <jaror> f :: forall b -> Bounded b => Int
2026-05-20 21:17:14 +0000 <jaror> f b = length ([minBound..maxBound] :: [b])
2026-05-20 21:17:29 +0000 <jaror> Then your users can write 'f SomeCustomType'
2026-05-20 21:17:52 +0000 <jaror> This makes it a bit clearer that the type argument is really required.
2026-05-20 21:18:31 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2026-05-20 21:18:36 +0000 <yin> nice ty
2026-05-20 21:18:47 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 21:23:16 +0000 <tomsmeding> the classical Haskell89 way of doing that would be with `f :: Bounded b => Proxy b -> Int ; f p = length [minBound `asProxyTypeOf` p .. maxBound]`
2026-05-20 21:23:27 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-05-20 21:31:03 +0000layline_(~layline@149.154.26.47) layline
2026-05-20 21:34:26 +0000pierluc-codes34(~pierlucco@modemcable092.154-83-70.mc.videotron.ca) (Quit: The Lounge - https://thelounge.chat)
2026-05-20 21:34:29 +0000target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2026-05-20 21:34:33 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 21:35:10 +0000layline_(~layline@149.154.26.47) (Client Quit)
2026-05-20 21:39:49 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 21:40:29 +0000jreicherGuest8582
2026-05-20 21:40:58 +0000jreicher(~joelr@user/jreicher) jreicher
2026-05-20 21:41:06 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2026-05-20 21:41:43 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2026-05-20 21:42:16 +0000undermine(~user@user/undermine) undermine
2026-05-20 21:43:21 +0000Guest8582(~joelr@user/jreicher) (Ping timeout: 240 seconds)
2026-05-20 21:43:43 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 21:45:26 +0000 <jaror> Haskell89 or Haskell98 :P
2026-05-20 21:46:19 +0000elarks(~elarks@user/yerrii) (Quit: WeeChat 4.8.1)
2026-05-20 21:48:26 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-05-20 21:49:55 +0000vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2026-05-20 21:50:02 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 21:50:56 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-05-20 21:53:06 +0000elarks(~elarks@user/yerrii) yerrii
2026-05-20 21:53:46 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2026-05-20 21:54:36 +0000 <tomsmeding> uh
2026-05-20 21:54:52 +0000 <tomsmeding> sorry, I've been doing some C lately and my mind was in the wrong mode
2026-05-20 21:55:08 +0000 <tomsmeding> also, "haskell acht-en-negentig"
2026-05-20 21:55:14 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 21:55:28 +0000 <jaror> haha
2026-05-20 21:55:40 +0000 <jaror> technically I think Haskell 1.0 was written in 89
2026-05-20 21:56:40 +0000 <jaror> oh it was only published on april 1 in 1990
2026-05-20 21:58:47 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2026-05-20 21:59:04 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 21:59:23 +0000Guest54(~Guest54@2600:1700:4c00:68f0:c786:9a89:b897:4427)
2026-05-20 22:01:36 +0000Square(~Square@user/square) (Ping timeout: 246 seconds)
2026-05-20 22:03:01 +0000Square2(~Square4@user/square) Square
2026-05-20 22:03:03 +0000Square(~Square@user/square) Square
2026-05-20 22:04:08 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-05-20 22:05:04 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 22:07:26 +0000Square(~Square@user/square) (Ping timeout: 252 seconds)
2026-05-20 22:09:12 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Excess Flood)
2026-05-20 22:12:06 +0000Sgeo(~Sgeo@user/sgeo) Sgeo
2026-05-20 22:13:58 +0000sp1ff`(~user@2601:1c2:4080:14c0:5df2:f2f4:8a07:70ec) (Remote host closed the connection)
2026-05-20 22:14:50 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-05-20 22:14:50 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 22:15:18 +0000tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2026-05-20 22:15:21 +0000Pozyomka(~pyon@user/pyon) (Quit: WeeChat 4.9.0)
2026-05-20 22:16:30 +0000peterbecich(~Thunderbi@71.84.33.135) (Quit: peterbecich)
2026-05-20 22:16:58 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-05-20 22:17:19 +0000Pozyomka(~pyon@user/pyon) pyon
2026-05-20 22:18:42 +0000pavonia(~user@user/siracusa) siracusa
2026-05-20 22:20:10 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-05-20 22:21:04 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-05-20 22:30:22 +0000peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 256 seconds)
2026-05-20 22:30:38 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 22:35:35 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-05-20 22:38:51 +0000AlexNoo(~AlexNoo@85.174.181.52) (Read error: Connection reset by peer)
2026-05-20 22:38:52 +0000Alex_delenda_est(~al_test@85.174.181.52) (Read error: Connection reset by peer)
2026-05-20 22:38:52 +0000AlexZenon(~alzenon@85.174.181.52) (Read error: Connection reset by peer)
2026-05-20 22:46:25 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 22:48:17 +0000AlexNoo(~AlexNoo@85.174.181.52)
2026-05-20 22:51:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-05-20 22:54:21 +0000AlexZenon(~alzenon@85.174.181.52)
2026-05-20 22:57:43 +0000Alex_delenda_est(~al_test@85.174.181.52)
2026-05-20 22:58:39 +0000AlexZenon(~alzenon@85.174.181.52) (Ping timeout: 246 seconds)
2026-05-20 23:04:36 +0000Typedfern(~Typedfern@176.red-83-37-46.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
2026-05-20 23:04:53 +0000AlexZenon(~alzenon@85.174.181.52)
2026-05-20 23:07:57 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2026-05-20 23:08:16 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-05-20 23:16:24 +0000bitdex_(~bitdex@gateway/tor-sasl/bitdex) bitdex
2026-05-20 23:18:00 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-05-20 23:19:28 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds)