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)