2025/12/12

2025-12-12 00:00:30 +0100jmcantrell_jmcantrell
2025-12-12 00:02:12 +0100emmanuelux(~emmanuelu@user/emmanuelux) emmanuelux
2025-12-12 00:03:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2025-12-12 00:04:06 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2025-12-12 00:10:10 +0100xff0x(~xff0x@2405:6580:b080:900:bfb6:36fd:6718:66b7) (Ping timeout: 246 seconds)
2025-12-12 00:12:33 +0100yin(~zero@user/zero) zero
2025-12-12 00:14:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 00:14:52 +0100xff0x(~xff0x@2405:6580:b080:900:bfb6:36fd:6718:66b7)
2025-12-12 00:18:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 00:21:35 +0100yin(~zero@user/zero) (Remote host closed the connection)
2025-12-12 00:21:51 +0100yin(~zero@user/zero) zero
2025-12-12 00:26:29 +0100haskellbridge(~hackager@96.28.224.214) (Remote host closed the connection)
2025-12-12 00:28:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 00:30:51 +0100haskellbridge(~hackager@96.28.224.214) hackager
2025-12-12 00:30:51 +0100ChanServ+v haskellbridge
2025-12-12 00:33:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-12 00:34:12 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-12 00:36:59 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
2025-12-12 00:39:31 +0100tccq(~user@user/tccq) (Remote host closed the connection)
2025-12-12 00:39:50 +0100Pozyomka(~pyon@user/pyon) (Quit: WeeChat 4.8.1)
2025-12-12 00:40:42 +0100Pozyomka(~pyon@user/pyon) pyon
2025-12-12 00:44:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 00:48:17 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-12 00:49:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 00:53:18 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds)
2025-12-12 00:56:24 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 260 seconds)
2025-12-12 01:00:30 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 01:05:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 01:16:13 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 01:22:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 01:34:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 01:36:04 +0100tjbc(~tjbc@user/fliife) (Ping timeout: 260 seconds)
2025-12-12 01:38:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 01:45:42 +0100Googulator9(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
2025-12-12 01:45:50 +0100Googulator42(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
2025-12-12 01:49:57 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 01:51:21 +0100tjbc(~tjbc@user/fliife) fliife
2025-12-12 01:53:56 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2025-12-12 01:55:10 +0100trickard(~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-12 01:55:13 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 01:55:24 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au)
2025-12-12 02:05:13 +0100xff0x(~xff0x@2405:6580:b080:900:bfb6:36fd:6718:66b7) (Ping timeout: 260 seconds)
2025-12-12 02:05:45 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 02:10:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 02:15:42 +0100Googulator42(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
2025-12-12 02:15:44 +0100Googulator25(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
2025-12-12 02:18:16 +0100trickard_trickard
2025-12-12 02:21:04 +0100Square2(~Square@user/square) Square
2025-12-12 02:21:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 02:23:51 +0100iqubic(~sophia@2601:602:9203:1660:c86e:69df:f359:9bd7) iqubic
2025-12-12 02:24:15 +0100Square(~Square4@user/square) (Ping timeout: 240 seconds)
2025-12-12 02:24:40 +0100divlamir(~divlamir@user/divlamir) (Read error: Connection reset by peer)
2025-12-12 02:24:53 +0100divlamir(~divlamir@user/divlamir) divlamir
2025-12-12 02:26:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 02:26:43 +0100Tuplanolla(~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Quit: Leaving.)
2025-12-12 02:29:52 +0100acidjnk(~acidjnk@p200300d6e717192391252480cf04477b.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2025-12-12 02:33:24 +0100omidmash1(~omidmash@user/omidmash) omidmash
2025-12-12 02:34:55 +0100omidmash(~omidmash@user/omidmash) (Ping timeout: 240 seconds)
2025-12-12 02:34:56 +0100omidmash1omidmash
2025-12-12 02:37:20 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 02:42:09 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-12 02:45:34 +0100tt123160(~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) (Ping timeout: 246 seconds)
2025-12-12 02:45:37 +0100Googulator25(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
2025-12-12 02:45:40 +0100Googulator41(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
2025-12-12 02:53:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 02:57:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 03:03:15 +0100Square2(~Square@user/square) (Ping timeout: 240 seconds)
2025-12-12 03:08:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 03:11:04 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2025-12-12 03:13:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 03:19:57 +0100tt123160(~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) tt1231
2025-12-12 03:23:43 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 246 seconds)
2025-12-12 03:24:41 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 03:25:37 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-12-12 03:30:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 03:40:29 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 03:45:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 03:45:56 +0100Googulator45(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
2025-12-12 03:46:13 +0100Googulator41(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
2025-12-12 03:46:40 +0100pointlessslippe-(~pointless@62.106.85.17) (Read error: Connection reset by peer)
2025-12-12 03:49:02 +0100pointlessslippe1(~pointless@62.106.85.17) pointlessslippe1
2025-12-12 03:55:47 +0100poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-12-12 03:56:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 03:57:57 +0100deptype(~deptype@2406:b400:3a:9d2f:23b7:e1a3:7fe:1a22)
2025-12-12 03:58:53 +0100poscat(~poscat@user/poscat) poscat
2025-12-12 04:00:49 +0100karenw(~karenw@user/karenw) (Ping timeout: 246 seconds)
2025-12-12 04:02:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 04:14:04 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 04:14:49 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 246 seconds)
2025-12-12 04:15:58 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-12 04:18:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 04:29:54 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 04:30:01 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 264 seconds)
2025-12-12 04:32:35 +0100monochrom(trebla@216.138.220.146) (Quit: ZNC 1.9.1+deb2build5 - https://znc.in)
2025-12-12 04:34:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-12 04:40:55 +0100monochrom(trebla@216.138.220.146)
2025-12-12 04:45:32 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 04:45:49 +0100Googulator78(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
2025-12-12 04:45:57 +0100Googulator45(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
2025-12-12 04:50:17 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-12 04:56:31 +0100AlexNoo_(~AlexNoo@94.233.240.243)
2025-12-12 04:59:05 +0100AlexZenon(~alzenon@85.174.180.40) (Ping timeout: 245 seconds)
2025-12-12 04:59:35 +0100AlexNoo(~AlexNoo@85.174.180.40) (Ping timeout: 240 seconds)
2025-12-12 04:59:40 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net)
2025-12-12 05:01:17 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 05:03:11 +0100AlexZenon(~alzenon@94.233.240.243)
2025-12-12 05:03:49 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 246 seconds)
2025-12-12 05:05:10 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-12 05:05:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-12 05:17:02 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 05:20:50 +0100Googulator78(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
2025-12-12 05:21:03 +0100Googulator78(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
2025-12-12 05:22:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 05:31:15 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-12 05:31:49 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-12 05:32:51 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 05:36:18 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net)
2025-12-12 05:37:24 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-12 05:37:52 +0100Pozyomka(~pyon@user/pyon) (Quit: brb)
2025-12-12 05:38:11 +0100Pozyomka(~pyon@user/pyon) pyon
2025-12-12 05:41:01 +0100rekahsoft(~rekahsoft@70.51.99.245) (Remote host closed the connection)
2025-12-12 05:48:38 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 05:53:52 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 246 seconds)
2025-12-12 05:54:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 05:54:08 +0100sp1ff(~user@2601:1c2:4c00:6820::c593) sp1ff
2025-12-12 05:56:46 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-12-12 05:57:20 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-12 05:57:31 +0100Pozyomka(~pyon@user/pyon) (Quit: brb)
2025-12-12 05:59:12 +0100Pozyomka(~pyon@user/pyon) pyon
2025-12-12 06:04:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 06:09:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-12 06:13:13 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...)
2025-12-12 06:20:41 +0100Googulator78(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
2025-12-12 06:20:45 +0100Googulator82(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
2025-12-12 06:21:13 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 06:25:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 06:25:42 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) bitdex
2025-12-12 06:32:34 +0100bggd_(~bgg@2a01:e0a:fd5:f510:6dea:c12d:7938:d990)
2025-12-12 06:34:55 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds)
2025-12-12 06:35:41 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-12 06:36:36 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 06:43:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 06:44:55 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-12 06:50:42 +0100Googulator66(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
2025-12-12 06:50:48 +0100Googulator82(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
2025-12-12 06:51:58 +0100michalz(~michalz@185.246.207.201)
2025-12-12 06:54:39 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 06:58:44 +0100Pozyomka(~pyon@user/pyon) (Quit: WeeChat 4.8.1)
2025-12-12 07:01:29 +0100Pozyomka(~pyon@user/pyon) pyon
2025-12-12 07:01:48 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-12 07:06:04 +0100takuan(~takuan@d8D86B9E9.access.telenet.be)
2025-12-12 07:24:15 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 244 seconds)
2025-12-12 07:25:55 +0100Pixi(~Pixi@user/pixi) (Ping timeout: 240 seconds)
2025-12-12 07:27:58 +0100Pixi(~Pixi@user/pixi) Pixi
2025-12-12 07:28:52 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2025-12-12 07:29:18 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-12 07:38:12 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 244 seconds)
2025-12-12 07:50:44 +0100Googulator66(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
2025-12-12 07:50:52 +0100Googulator66(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
2025-12-12 07:56:37 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 255 seconds)
2025-12-12 07:58:11 +0100tomboy64(~tomboy64@user/tomboy64) tomboy64
2025-12-12 08:00:26 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-12 08:12:01 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) Enrico63
2025-12-12 08:20:36 +0100ft(~ft@p508db844.dip0.t-ipconnect.de) (Quit: leaving)
2025-12-12 08:20:46 +0100Googulator4(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu)
2025-12-12 08:21:03 +0100Googulator66(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed)
2025-12-12 08:26:48 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 08:31:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 08:37:00 +0100marinelli(~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli)
2025-12-12 08:41:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 08:46:24 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-12 08:52:34 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2025-12-12 08:56:46 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed)
2025-12-12 08:57:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 09:00:40 +0100peutri_(~peutri@bobo.desast.re) (Ping timeout: 265 seconds)
2025-12-12 09:02:36 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2025-12-12 09:03:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 09:08:50 +0100trickard(~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-12 09:09:04 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au)
2025-12-12 09:11:00 +0100Googulator4Googulator
2025-12-12 09:11:56 +0100peutri(~peutri@bobo.desast.re) peutri
2025-12-12 09:13:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 09:13:23 +0100peterbecich(~Thunderbi@71.84.33.135) (Ping timeout: 260 seconds)
2025-12-12 09:14:07 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) Enrico63
2025-12-12 09:15:09 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Client Quit)
2025-12-12 09:15:49 +0100Googulator(~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Ping timeout: 272 seconds)
2025-12-12 09:17:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 09:19:21 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) Enrico63
2025-12-12 09:19:37 +0100larsivi(~larsivi@user/larsivi) (Quit: WeeChat 4.8.1)
2025-12-12 09:21:04 +0100AlexNoo_AlexNoo
2025-12-12 09:24:22 +0100trickard_trickard
2025-12-12 09:28:44 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 09:34:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-12-12 09:37:04 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2025-12-12 09:43:08 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed)
2025-12-12 09:44:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 09:47:20 +0100emmanuelux(~emmanuelu@user/emmanuelux) (Remote host closed the connection)
2025-12-12 09:49:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 09:49:18 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2025-12-12 09:58:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 09:58:54 +0100bggd_bggd
2025-12-12 10:04:01 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
2025-12-12 10:10:18 +0100bggd(~bgg@2a01:e0a:fd5:f510:6dea:c12d:7938:d990) (Changing host)
2025-12-12 10:10:18 +0100bggd(~bgg@user/bggd) bggd
2025-12-12 10:17:55 +0100acidjnk(~acidjnk@p200300d6e717190330ae5c7be13b8759.dip0.t-ipconnect.de) acidjnk
2025-12-12 10:30:27 +0100 <gentauro> I really enjoyed HH talk "Excel: The World’s Most Successful Functional Programming Platform By Houston Haynes": https://www.youtube.com/watch?v=rpe5vrhFATA. I'm glad I convinced him and FP Sweden to do it :)
2025-12-12 10:44:03 +0100tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
2025-12-12 10:52:04 +0100tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2025-12-12 10:54:05 +0100chele(~chele@user/chele) chele
2025-12-12 10:56:37 +0100AnkurAlpha(~ankur@user/AnkurAlpha) AnkurAlpha
2025-12-12 10:56:49 +0100Googulator(~Googulato@team.broadbit.hu)
2025-12-12 10:57:11 +0100poscat0x04(~poscat@user/poscat) poscat
2025-12-12 10:57:35 +0100poscat(~poscat@user/poscat) (Ping timeout: 240 seconds)
2025-12-12 10:57:43 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 240 seconds)
2025-12-12 11:02:00 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-12-12 11:02:29 +0100__monty__(~toonn@user/toonn) toonn
2025-12-12 11:03:42 +0100trickard(~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-12 11:03:55 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au)
2025-12-12 11:04:59 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2025-12-12 11:08:27 +0100poscat0x04(~poscat@user/poscat) (Remote host closed the connection)
2025-12-12 11:08:30 +0100trickard_trickard
2025-12-12 11:09:41 +0100poscat(~poscat@user/poscat) poscat
2025-12-12 11:14:14 +0100lucabtz(~lucabtz@user/lucabtz) (Quit: leaving)
2025-12-12 11:14:25 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2025-12-12 11:17:23 +0100poscat(~poscat@user/poscat) (Remote host closed the connection)
2025-12-12 11:18:06 +0100poscat(~poscat@user/poscat) poscat
2025-12-12 11:24:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 11:25:07 +0100deptype(~deptype@2406:b400:3a:9d2f:23b7:e1a3:7fe:1a22) (Remote host closed the connection)
2025-12-12 11:27:55 +0100Tuplanolla(~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) Tuplanolla
2025-12-12 11:37:47 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 11:38:15 +0100 <gentauro> related xD https://xkcd.com/2453/
2025-12-12 11:42:56 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-12 11:44:50 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
2025-12-12 11:52:30 +0100Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Ping timeout: 244 seconds)
2025-12-12 12:00:40 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) Enrico63
2025-12-12 12:02:07 +0100 <Enrico63> Hi, there. I'd like some clarification on rank-n types.
2025-12-12 12:02:08 +0100 <Enrico63> The id function has type `forall a. a -> a` which is rank 1, right?
2025-12-12 12:03:53 +0100 <lucabtz> yes rank 1
2025-12-12 12:05:25 +0100 <Enrico63> Instead, if I have `(forall a. a -> a) -> b`, that's rank 2, right?
2025-12-12 12:05:37 +0100 <Enrico63> (Be damned the formatting, ahhah)
2025-12-12 12:06:02 +0100 <Enrico63> Well, that's the same as `forall b. (forall a. a -> a) -> b`
2025-12-12 12:06:09 +0100 <Enrico63> It is rank 2, correct?
2025-12-12 12:07:01 +0100 <mauke> https://wiki.haskell.org/Rank-N_types
2025-12-12 12:07:52 +0100 <Enrico63> I come _from_ that page
2025-12-12 12:08:52 +0100 <mauke> well, it's what I would've used to answer your question :-)
2025-12-12 12:09:41 +0100 <Enrico63> Yeah, I don't quite get what's unclear to me, so I asked those previous questions to have something to hinge on
2025-12-12 12:10:10 +0100 <mauke> (the answer is yes)
2025-12-12 12:12:00 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-12-12 12:12:08 +0100 <haskellbridge> <loonycyborg> I personally found the trick to understanding rank-n is that they're about polymorphic functions that can take other polymorphic functions.
2025-12-12 12:12:31 +0100trickard(~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-12 12:12:37 +0100 <Enrico63> loonycyborg, yeah, I'm also (halfway) there
2025-12-12 12:12:39 +0100 <haskellbridge> <loonycyborg> With rank 1 all variables are set at outer scope and you won't be passing any polymorphic functions.
2025-12-12 12:13:44 +0100 <Enrico63> Whereas rank 2 means that the implementation (i.e. the inner scope) chooses the type variable of the inner forall
2025-12-12 12:15:05 +0100 <Enrico63> I kind of get that. I suppose I want to do a quiz to make sure I have truly understood, rather than memoized some patterns
2025-12-12 12:15:15 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au)
2025-12-12 12:16:06 +0100 <lucabtz> i think rank N means it has rank N-1 as its arguments, the base case rank 0 being a monomorphic value/function
2025-12-12 12:16:30 +0100 <mauke> forall b. ((forall a. a -> b) -> b) -> b
2025-12-12 12:16:59 +0100 <mauke> is that rank-2?
2025-12-12 12:17:12 +0100 <Enrico63> mauke, that is rank 3?
2025-12-12 12:17:20 +0100 <mauke> according to the wiki page, it's rank 2
2025-12-12 12:18:04 +0100 <Enrico63> Umpf
2025-12-12 12:18:21 +0100 <mauke> but then, according to that page (forall a. a) -> Int is rank 1
2025-12-12 12:18:26 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-12 12:18:40 +0100 <mauke> this doesn't feel right
2025-12-12 12:18:53 +0100 <Enrico63> Yeah, how's that? `Int -> Int` is rank 0, right?
2025-12-12 12:19:07 +0100 <Enrico63> `forall a. a -> a` (e.g. the type of id) is rank 1
2025-12-12 12:19:13 +0100pabs3(~pabs3@user/pabs3) (Ping timeout: 246 seconds)
2025-12-12 12:19:41 +0100 <Enrico63> and the caller "chooses" the `a`
2025-12-12 12:20:26 +0100 <Enrico63> then in `(forall a. a -> a) -> b`, where there's an implicit `forall b.` in front of everyting, b is chosen by the caller, but a is chosen by the implementation
2025-12-12 12:20:59 +0100 <Enrico63> so that means `(forall a. a -> a) -> b` is rank 2, to my understanding. How is `(forall a. a) -> Int` any different in this respect?
2025-12-12 12:21:21 +0100 <mauke> the wiki page defines "rank" as the number of foralls in the type
2025-12-12 12:22:31 +0100 <lucabtz> mauke: it doesnt though, it says forall a. a -> (forall b. b -> a) is rank 1
2025-12-12 12:22:31 +0100 <Enrico63> *which are nested and cannot be merged with a previous one*
2025-12-12 12:22:53 +0100 <mauke> lucabtz: that one is mergeable
2025-12-12 12:23:08 +0100 <lucabtz> yeah you were missing what Enrico63 added :P
2025-12-12 12:23:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 12:23:33 +0100 <mauke> that still leaves (forall a. a) -> Int at rank 1
2025-12-12 12:23:47 +0100 <Enrico63> It should be rank 2, I understand
2025-12-12 12:24:48 +0100trickard_trickard
2025-12-12 12:25:31 +0100 <Enrico63> For instance, this compiles
2025-12-12 12:25:31 +0100 <Enrico63> foo :: (forall a. a) -> Int
2025-12-12 12:25:32 +0100 <Enrico63> foo x = x + 1
2025-12-12 12:26:10 +0100 <Enrico63> which means that the implementation of foo is choosing a=Int, which could not be the case if foo was rank 1, because the caller would choose a.
2025-12-12 12:26:11 +0100 <Enrico63> No?
2025-12-12 12:28:10 +0100 <Enrico63> Anyway, going to the exercises I found on the book "Thinking with Types" that I'm reading, `Int -> forall a. a -> a` is rank 1, correct?
2025-12-12 12:30:52 +0100 <mauke> this looks much better: https://stackoverflow.com/questions/22362196/what-is-n-in-rankntypes
2025-12-12 12:31:19 +0100 <mauke> Enrico63: yes, that's a H98 type (by floating out the forall)
2025-12-12 12:31:28 +0100 <merijn> Enrico63: This is the clearest example of Rank1 vs RankN I cooked up a few years ago: https://gist.github.com/merijn/77e3fa9757658e59b01d
2025-12-12 12:32:20 +0100 <mauke> yeah, when I search for "rank-n type", most results are examples like ^
2025-12-12 12:32:33 +0100 <mauke> which is useless if I want to know the actual definition of "rank"
2025-12-12 12:32:43 +0100pabs3(~pabs3@user/pabs3) pabs3
2025-12-12 12:32:46 +0100 <merijn> sure
2025-12-12 12:32:58 +0100 <mauke> the SO page I found is better, but includes two incompatible answers :-)
2025-12-12 12:33:18 +0100 <merijn> then again, in practice there's very little value in knowing the exact rank of a type :p
2025-12-12 12:33:30 +0100Square2(~Square@user/square) Square
2025-12-12 12:33:37 +0100 <merijn> In practice the value is understanding "why does this not compile and how can I make it do what I want" :p
2025-12-12 12:34:01 +0100 <merijn> Especially since GHC doesn't even distinguish between Rank2 and RankN
2025-12-12 13:01:13 +0100__monty__(~toonn@user/toonn) (Ping timeout: 264 seconds)
2025-12-12 13:02:19 +0100__monty__(~toonn@user/toonn) toonn
2025-12-12 13:02:46 +0100pabs3(~pabs3@user/pabs3) (Ping timeout: 244 seconds)
2025-12-12 13:04:28 +0100pabs3(~pabs3@user/pabs3) pabs3
2025-12-12 13:16:13 +0100Katarushisu(~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) Katarushisu
2025-12-12 13:20:57 +0100Googulator50(~Googulato@team.broadbit.hu)
2025-12-12 13:24:43 +0100Googulator(~Googulato@team.broadbit.hu) (Ping timeout: 272 seconds)
2025-12-12 13:27:35 +0100chromoblob(~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds)
2025-12-12 13:29:25 +0100lucabtz(~lucabtz@user/lucabtz) (Ping timeout: 264 seconds)
2025-12-12 13:30:17 +0100chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2025-12-12 13:35:12 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2025-12-12 13:35:24 +0100 <lucabtz> isnt the definition as rank N has as parameters rank N-1 types correct?
2025-12-12 13:36:47 +0100xff0x(~xff0x@2405:6580:b080:900:d3a9:b169:555e:b9ec)
2025-12-12 13:38:55 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed)
2025-12-12 13:44:11 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-12 13:55:30 +0100lucabtz(~lucabtz@user/lucabtz) (Quit: leaving)
2025-12-12 13:56:23 +0100Googulator50(~Googulato@team.broadbit.hu) (Ping timeout: 272 seconds)
2025-12-12 13:59:13 +0100lucabtz(~lucabtz@user/lucabtz) lucabtz
2025-12-12 14:02:24 +0100lucabtz_(~lucabtz@user/lucabtz) lucabtz
2025-12-12 14:03:39 +0100 <merijn> Yes, but then pinning down exactly what that means isn't always obvious in Haskell given that the source language doesn't always match the one with explicit foralls directly
2025-12-12 14:04:34 +0100lucabtz(~lucabtz@user/lucabtz) (Ping timeout: 246 seconds)
2025-12-12 14:06:30 +0100 <lucabtz_> though the only foralls which can be implicit are the ones at the top level no?
2025-12-12 14:07:05 +0100lucabtz_lucabtz
2025-12-12 14:12:55 +0100fp(~Thunderbi@2001:708:150:10::7e06) fp
2025-12-12 14:17:41 +0100fp(~Thunderbi@2001:708:150:10::7e06) (Ping timeout: 244 seconds)
2025-12-12 14:24:02 +0100trickard(~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-12 14:24:15 +0100trickard(~trickard@cpe-83-98-47-163.wireline.com.au)
2025-12-12 14:27:31 +0100fp(~Thunderbi@130.233.70.102) fp
2025-12-12 14:29:35 +0100stef204(~stef204@user/stef204) stef204
2025-12-12 14:31:33 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) Enrico63
2025-12-12 14:40:57 +0100Everything(~Everythin@172-232-54-192.ip.linodeusercontent.com) (Quit: leaving)
2025-12-12 15:03:54 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
2025-12-12 15:06:49 +0100karenw(~karenw@user/karenw) karenw
2025-12-12 15:08:37 +0100euphores(~SASL_euph@user/euphores) euphores
2025-12-12 15:20:54 +0100Square(~Square4@user/square) Square
2025-12-12 15:26:44 +0100ouilemur(~jgmerritt@user/ouilemur) (Ping timeout: 260 seconds)
2025-12-12 15:30:16 +0100ouilemur(~jgmerritt@user/ouilemur) ouilemur
2025-12-12 15:32:05 +0100ouilemur(~jgmerritt@user/ouilemur) (Max SendQ exceeded)
2025-12-12 15:33:29 +0100yin(~zero@user/zero) (Killed (NickServ (GHOST command used by Guest900!~yin@a89-153-191-69.cpe.netcabo.pt)))
2025-12-12 15:34:51 +0100ft(~ft@p508db844.dip0.t-ipconnect.de) ft
2025-12-12 15:39:13 +0100ouilemur(~jgmerritt@user/ouilemur) ouilemur
2025-12-12 15:39:19 +0100Square(~Square4@user/square) (Ping timeout: 244 seconds)
2025-12-12 15:42:22 +0100ouilemur(~jgmerritt@user/ouilemur) (Max SendQ exceeded)
2025-12-12 15:49:29 +0100ouilemur(~jgmerritt@user/ouilemur) ouilemur
2025-12-12 15:50:36 +0100ouilemur(~jgmerritt@user/ouilemur) (Max SendQ exceeded)
2025-12-12 15:50:43 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-12-12 15:51:23 +0100sldkfjlskdjf(~zero@user/zero) zero
2025-12-12 15:51:29 +0100sldkfjlskdjf(~zero@user/zero) (Remote host closed the connection)
2025-12-12 15:51:44 +0100sldkfjlskdjf(~zero@user/zero) zero
2025-12-12 15:54:11 +0100fp(~Thunderbi@130.233.70.102) (Quit: fp)
2025-12-12 15:54:32 +0100fp(~Thunderbi@2001:708:20:1406::10c5) fp
2025-12-12 15:55:49 +0100ouilemur(~jgmerritt@user/ouilemur) ouilemur
2025-12-12 15:57:36 +0100ouilemur(~jgmerritt@user/ouilemur) (Max SendQ exceeded)
2025-12-12 15:59:55 +0100trickard(~trickard@cpe-83-98-47-163.wireline.com.au) (Ping timeout: 240 seconds)
2025-12-12 16:00:17 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au)
2025-12-12 16:05:00 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-12 16:05:46 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2025-12-12 16:06:11 +0100sldkfjlskdjfyin
2025-12-12 16:10:09 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
2025-12-12 16:13:45 +0100Wygulmage(~Wygulmage@user/Wygulmage) Wygulmage
2025-12-12 16:14:57 +0100trickard_trickard
2025-12-12 16:21:15 +0100jreicher(~user@user/jreicher) (Ping timeout: 240 seconds)
2025-12-12 16:21:54 +0100trickard(~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-12 16:22:07 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au)
2025-12-12 16:22:33 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed)
2025-12-12 16:22:40 +0100jreicher(~user@user/jreicher) jreicher
2025-12-12 16:22:48 +0100ouilemur(~jgmerritt@user/ouilemur) ouilemur
2025-12-12 16:26:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 16:27:01 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au) (Ping timeout: 264 seconds)
2025-12-12 16:27:24 +0100ouilemur(~jgmerritt@user/ouilemur) (Ping timeout: 260 seconds)
2025-12-12 16:29:06 +0100ouilemur(~jgmerritt@user/ouilemur) ouilemur
2025-12-12 16:32:46 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au)
2025-12-12 16:34:02 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2025-12-12 16:37:01 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 16:41:15 +0100skum(~skum@user/skum) (Quit: WeeChat 4.8.1)
2025-12-12 16:42:17 +0100ouilemur(~jgmerritt@user/ouilemur) (Ping timeout: 250 seconds)
2025-12-12 16:43:50 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-12-12 16:44:25 +0100ouilemur(~jgmerritt@user/ouilemur) ouilemur
2025-12-12 16:44:43 +0100fp(~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 264 seconds)
2025-12-12 16:50:38 +0100deptype(~deptype@2406:b400:3a:9d2f:c928:dba3:487d:1bc)
2025-12-12 16:52:07 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) Enrico63
2025-12-12 16:54:04 +0100lucabtz(~lucabtz@user/lucabtz) (Quit: Lost terminal)
2025-12-12 16:54:47 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-12 16:54:56 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 16:55:00 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au)
2025-12-12 16:59:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 17:00:46 +0100skum(~skum@user/skum) skum
2025-12-12 17:03:36 +0100pebble(~pebble@37.63.32.91) pebble
2025-12-12 17:05:21 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) kuribas
2025-12-12 17:10:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 17:15:36 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-12-12 17:16:17 +0100 <ski> Enrico63 : "Well, that's the same as `forall b. (forall a. a -> a) -> b`" -- no
2025-12-12 17:20:47 +0100 <Enrico63> ski, why?
2025-12-12 17:26:45 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 17:27:23 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed)
2025-12-12 17:30:49 +0100__monty__(~toonn@user/toonn) (Ping timeout: 250 seconds)
2025-12-12 17:31:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 17:34:26 +0100chexum(~quassel@gateway/tor-sasl/chexum) chexum
2025-12-12 17:39:33 +0100skiblinks
2025-12-12 17:42:33 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 17:47:21 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-12 17:48:09 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) Enrico63
2025-12-12 17:48:38 +0100 <Enrico63> ski , blinks?
2025-12-12 17:49:00 +0100 <EvanR> is (forall a . a -> a) -> b the same as forall b . (forall a . a -> a) -> b
2025-12-12 17:49:06 +0100 <EvanR> using implicit forall it seems so
2025-12-12 17:50:54 +0100 <kuribas> Yes, except for scoped type variables.
2025-12-12 17:53:37 +0100__monty__(~toonn@user/toonn) toonn
2025-12-12 17:58:21 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 18:00:12 +0100trickard_trickard
2025-12-12 18:01:07 +0100 <ski> Enrico63 : `[a] -> [a]' is not the same as `forall a. [a] -> [a]'
2025-12-12 18:02:25 +0100 <ski> Enrico63 : if it was, then `Eq a => a -> ([a] -> [a]) -> [a] -> [[a]]' would be the same as `Eq a => a -> (forall a. [a] -> [a]) -> [a] -> [[a]]', which is obviously nonsense
2025-12-12 18:03:16 +0100 <mauke> similarly, [a] -> Int is not the same as ([a] -> Int)
2025-12-12 18:03:18 +0100 <ski> Enrico63 : in *most* (but not all) circumstances, `foo :: ..a..' is interpreted as `foo :: forall a. ..a..'
2025-12-12 18:03:19 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2025-12-12 18:03:33 +0100 <mauke> if it was, then [a] -> Integer would be the same as ([a] -> Int)eger
2025-12-12 18:03:55 +0100__monty__(~toonn@user/toonn) (Ping timeout: 240 seconds)
2025-12-12 18:05:43 +0100 <ski> (exceptions being method signatures in `class' (and `instance') declarations, which have the type variables in the head of the declaration free; field/component signatures in record notation for data types; also local signatures (e.g. with `where' or `let'-`in') if you have non local tyvars in scope, using `ScopedTypeVariables')
2025-12-12 18:08:28 +0100 <ski> so, in `class Eq a where (==) :: a -> a -> Bool', the `(==)' method here is *not* polymorphic, it is monomorphic in the specific `a' being an instance of `Eq' that we're talking about. otoh, in `class Functor f where fmap :: (a -> b) -> f a -> f b', the signature here *is* interpreted as `fmap :: forall a b. (a -> b) -> f a -> f b' (so polymorphic in `a' and `b', but not in `f')
2025-12-12 18:08:47 +0100 <ski> (so, that's a "polymorphic method" example)
2025-12-12 18:11:24 +0100 <Enrico63> When I wrote `(forall a. a -> a) -> b` [...] the same as `forall b. (forall a. a -> a) -> b` , I think I was assuming a leading `::`, i.e. that that was the whole signature. Is that what makes the difference?
2025-12-12 18:11:47 +0100 <ski> if you'd represent type class instances using "dictionaries"/"vtables" (records of methods), then `Eq a' (as above) would be represented as `data EqDict a = MkEqDict {(==) :: a -> a -> Bool}', while for the `Functor' case we'd get `data FunctorDict f = MkFunctorDict {fmap :: forall a b. (a -> b) -> f a -> f b}', where the component/field here is polymorphic, so that the `MkFunctorDict' has a rank-1 type
2025-12-12 18:12:00 +0100 <ski> Enrico63 : for the most part, yes
2025-12-12 18:12:41 +0100 <ski> (but there are contexts in which tyvars are not implicitly `forall'-quantified, like when the tyvar is already in scope outside of the signature)
2025-12-12 18:12:48 +0100acidjnk(~acidjnk@p200300d6e717190330ae5c7be13b8759.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2025-12-12 18:14:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 18:14:07 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2025-12-12 18:14:50 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 244 seconds)
2025-12-12 18:18:51 +0100sindu(~sindu@2.148.32.207.tmi.telenormobil.no)
2025-12-12 18:19:13 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 18:22:27 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 18:27:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 18:27:50 +0100__monty__(~toonn@user/toonn) toonn
2025-12-12 18:28:28 +0100Enrico63(~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed)
2025-12-12 18:38:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 18:40:37 +0100kuribas(~user@2a02:1808:cd:c4e1:9d3f:f177:3913:c0a7) kuribas
2025-12-12 18:40:46 +0100AnkurAlpha(~ankur@user/AnkurAlpha) (Quit: leaving)
2025-12-12 18:42:37 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2025-12-12 18:42:46 +0100chexum(~quassel@gateway/tor-sasl/chexum) chexum
2025-12-12 18:42:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 18:43:24 +0100ZLima12_(~zlima12@user/meow/ZLima12) ZLima12
2025-12-12 18:43:54 +0100ZLima12(~zlima12@user/meow/ZLima12) (Ping timeout: 260 seconds)
2025-12-12 18:50:42 +0100wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-12-12 18:53:53 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 18:58:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 18:59:45 +0100Wygulmage(~Wygulmage@user/Wygulmage) (Ping timeout: 272 seconds)
2025-12-12 19:02:04 +0100 <EvanR> mauke, lol
2025-12-12 19:02:27 +0100 <EvanR> x cannot possibly equal 3
2025-12-12 19:02:57 +0100 <EvanR> if it was, then boxcar would = bo3car
2025-12-12 19:03:08 +0100 <EvanR> clearly nonsense
2025-12-12 19:03:35 +0100kuribas(~user@2a02:1808:cd:c4e1:9d3f:f177:3913:c0a7) (Remote host closed the connection)
2025-12-12 19:03:49 +0100kuribas(~user@2a02:1808:cd:c4e1:d615:9737:dd6:7ffc) kuribas
2025-12-12 19:03:54 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2025-12-12 19:09:16 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 19:12:15 +0100karenw(~karenw@user/karenw) (Ping timeout: 240 seconds)
2025-12-12 19:14:07 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 19:18:00 +0100defragger(~random@i5C742CE2.versanet.de) (Remote host closed the connection)
2025-12-12 19:23:27 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 19:25:55 +0100gorignak(~gorignak@user/gorignak) gorignak
2025-12-12 19:28:35 +0100deptype(~deptype@2406:b400:3a:9d2f:c928:dba3:487d:1bc) (Remote host closed the connection)
2025-12-12 19:28:40 +0100trickard(~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-12 19:28:53 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au)
2025-12-12 19:30:27 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-12-12 19:30:59 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-12 19:38:56 +0100kuribas(~user@2a02:1808:cd:c4e1:d615:9737:dd6:7ffc) (Ping timeout: 256 seconds)
2025-12-12 19:41:31 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 19:46:10 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2025-12-12 19:47:17 +0100kuribas(~user@2a02:1808:cd:c4e1:426f:b0ba:9911:461) kuribas
2025-12-12 19:50:04 +0100 <gentauro> is there a way to install a `cabal` project with `stack`?
2025-12-12 19:50:25 +0100 <gentauro> I recall there was a `cabal2stack` right?
2025-12-12 19:50:38 +0100haritz(~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in)
2025-12-12 19:53:57 +0100 <tomsmeding> gentauro: what do you mean with "install", precisely? And does that "cabal project" depend on a cabal.project file, or is it simply a package with a something.cabal file?
2025-12-12 19:55:35 +0100 <gentauro> tomsmeding: Nevermind, found another project where I'm doing this. It appears that by adding a `stack.yaml` like this: https://paste.tomsmeding.com/LZ8m3NLq allows you to `stack build` and `stack install`. All good :)
2025-12-12 19:57:18 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 19:57:54 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
2025-12-12 20:02:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 20:13:05 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 20:14:13 +0100chele(~chele@user/chele) (Remote host closed the connection)
2025-12-12 20:16:47 +0100kuribas(~user@2a02:1808:cd:c4e1:426f:b0ba:9911:461) (Ping timeout: 250 seconds)
2025-12-12 20:17:35 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 20:21:44 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-12-12 20:23:28 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-12-12 20:24:27 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 20:29:25 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 20:31:50 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-12-12 20:31:57 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2025-12-12 20:34:34 +0100Lord_of_Life_Lord_of_Life
2025-12-12 20:36:26 +0100Psychotic1(~Psychotic@2600:1007:b0a4:1e01:107b:5dec:754f:b240)
2025-12-12 20:40:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 20:42:36 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-12-12 20:42:43 +0100 <__monty__> Does sortBy work for a partial ordering relation?
2025-12-12 20:43:00 +0100 <__monty__> I think not since it would not be transitive?
2025-12-12 20:43:47 +0100target_i(~target_i@user/target-i/x-6023099) target_i
2025-12-12 20:44:57 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2025-12-12 20:46:46 +0100 <tomsmeding> __monty__: how would you pass a partial ordering to sortBy? As a partial function?
2025-12-12 20:49:39 +0100 <dolio> If it's just false both ways for incomparable elements, then you're not going to get reliable results, no.
2025-12-12 20:53:58 +0100myme(~myme@2a01:799:d5e:5f00:b47a:83fd:4eab:92be) (Ping timeout: 260 seconds)
2025-12-12 20:54:31 +0100 <davean> There are levels of partiality
2025-12-12 20:54:48 +0100myme(~myme@2a01:799:d5e:5f00:e46f:4150:c7c:78b) myme
2025-12-12 20:56:02 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 20:57:18 +0100tromp(~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2)
2025-12-12 21:00:59 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-12-12 21:09:33 +0100fgarcia(~lei@user/fgarcia) (Quit: Remote host closed the connection)
2025-12-12 21:11:51 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 21:12:18 +0100 <ski> __monty__ : it would still be transitive, but that wouldn't help
2025-12-12 21:13:03 +0100ljdarj(~Thunderbi@user/ljdarj) (Quit: ljdarj)
2025-12-12 21:13:22 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-12-12 21:15:51 +0100ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-12-12 21:16:58 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-12-12 21:18:06 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds)
2025-12-12 21:18:07 +0100ljdarj1ljdarj
2025-12-12 21:19:41 +0100peterbecich(~Thunderbi@71.84.33.135) peterbecich
2025-12-12 21:25:26 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 21:27:50 +0100stef204(~stef204@user/stef204) (Quit: WeeChat 4.2.1)
2025-12-12 21:30:37 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-12 21:32:00 +0100Psychotic1(~Psychotic@2600:1007:b0a4:1e01:107b:5dec:754f:b240) (Quit: Leaving)
2025-12-12 21:34:02 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-12 21:34:15 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au)
2025-12-12 21:34:24 +0100 <jreicher> You could have a stable sort treating incomparable as "equal", but you'd have to be really sure that's what you wanted.
2025-12-12 21:36:05 +0100target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2025-12-12 21:39:52 +0100 <haskellbridge> <loonycyborg> There are some dedicated libraries for partial orders, like that one: https://hackage.haskell.org/package/pomaps-0.2.0.1/docs/Data-POSet.html
2025-12-12 21:41:15 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 21:42:45 +0100califax(~califax@user/califx) (Remote host closed the connection)
2025-12-12 21:45:55 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 21:50:35 +0100trickard_trickard
2025-12-12 21:50:53 +0100califax(~califax@user/califx) califx
2025-12-12 21:54:18 +0100 <EvanR> so you have the floats 1.2299999999999998, 1.23, and 1.2300000000000002. The 1.23 is really 1.229999999999999982236431605997495353221893310546875, but no matter what I give showFFloat it shows 1.230000000000000000000, just zeros after this
2025-12-12 21:54:42 +0100 <EvanR> is there a "show float with more decimals but correctly"
2025-12-12 21:56:57 +0100jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2025-12-12 21:57:02 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 21:58:25 +0100 <int-e> > toRational (1.23) * 10^53
2025-12-12 21:58:27 +0100 <lambdabot> 122999999999999998223643160599749535322189331054687500 % 1
2025-12-12 22:00:36 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2025-12-12 22:00:47 +0100 <EvanR> what the heck is showFFloat even doing, hopefully getting performance out of its corner cutting
2025-12-12 22:01:43 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-12 22:02:47 +0100 <EvanR> 1.2300000000000000000000000000000 just seems absurd
2025-12-12 22:02:53 +0100 <Lycurgus> engrish is so much funl, case in point, that is the 'even' of exasperation
2025-12-12 22:02:58 +0100 <monochrom> > showFFloat Nothing 1.23 ""
2025-12-12 22:02:59 +0100 <lambdabot> "1.23"
2025-12-12 22:03:02 +0100 <Lycurgus> *fun
2025-12-12 22:03:14 +0100 <EvanR> yes Nothing seems to evoke the blessed algorithm
2025-12-12 22:03:45 +0100 <monochrom> > showFFloat (Just 100) 0 ""
2025-12-12 22:03:46 +0100 <lambdabot> "0.0000000000000000000000000000000000000000000000000000000000000000000000000...
2025-12-12 22:03:51 +0100 <EvanR> which is fine but it takes Just something for seemingly a reason
2025-12-12 22:04:49 +0100 <monochrom> So I think the author just decided that if you have "Just n" then it unconditionally ensures n digits.
2025-12-12 22:05:01 +0100 <EvanR> maybe if you ask for over 17 significant digits it just slaps 0 on the rest
2025-12-12 22:05:04 +0100 <monochrom> Even if you're just printing 0.
2025-12-12 22:05:16 +0100 <EvanR> I know
2025-12-12 22:05:28 +0100 <EvanR> but in the case of 1.23 it's not the correct digits
2025-12-12 22:05:53 +0100 <EvanR> (1.229999999999999982236431605997495353221893310546875)
2025-12-12 22:06:15 +0100 <monochrom> Oh! Now I see what you mean.
2025-12-12 22:09:42 +0100 <monochrom> > length "1.2299999999999999"
2025-12-12 22:09:43 +0100 <lambdabot> 18
2025-12-12 22:11:05 +0100 <EvanR> basically it's taking the liberty of rounding up
2025-12-12 22:11:07 +0100 <EvanR> in this case
2025-12-12 22:11:16 +0100 <EvanR> not really, I'm sure, but that's the effect
2025-12-12 22:12:12 +0100 <monochrom> let s = "1.22999999999999999" in (length s, read s :: Double)
2025-12-12 22:12:16 +0100 <monochrom> > let s = "1.22999999999999999" in (length s, read s :: Double)
2025-12-12 22:12:17 +0100 <lambdabot> (19,1.23)
2025-12-12 22:12:36 +0100 <EvanR> leading me to the conclusion that: truncating "the string" of a positive float is not the same as rounding down
2025-12-12 22:12:50 +0100merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-12-12 22:12:55 +0100 <EvanR> which I was trying to demonstrate for reasons
2025-12-12 22:13:09 +0100 <monochrom> I think it's because at the limited precision of 18 digits, the thing is indistinguishable from 1.23
2025-12-12 22:13:28 +0100 <EvanR> yes, 1.23
2025-12-12 22:13:57 +0100 <EvanR> but not 1.23 plus 100 zeros
2025-12-12 22:14:21 +0100trickard(~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2025-12-12 22:14:34 +0100trickard_(~trickard@cpe-83-98-47-163.wireline.com.au)