Logs on 2025-12-12 (liberachat/#haskell)
| 00:00:30 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:05:15 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 00:16:13 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:22:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 00:34:16 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:36:04 | × | tjbc quits (~tjbc@user/fliife) (Ping timeout: 260 seconds) |
| 00:38:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 00:45:42 | × | Googulator9 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 00:45:50 | → | Googulator42 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 00:49:57 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 00:51:21 | → | tjbc joins (~tjbc@user/fliife) |
| 00:53:56 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 00:55:10 | × | trickard quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 00:55:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 00:55:24 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 01:05:13 | × | xff0x quits (~xff0x@2405:6580:b080:900:bfb6:36fd:6718:66b7) (Ping timeout: 260 seconds) |
| 01:05:45 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:10:15 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 01:15:42 | × | Googulator42 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 01:15:44 | → | Googulator25 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 01:18:16 | trickard_ | is now known as trickard |
| 01:21:04 | → | Square2 joins (~Square@user/square) |
| 01:21:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:23:51 | → | iqubic joins (~sophia@2601:602:9203:1660:c86e:69df:f359:9bd7) |
| 01:24:15 | × | Square quits (~Square4@user/square) (Ping timeout: 240 seconds) |
| 01:24:40 | × | divlamir quits (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 01:24:53 | → | divlamir joins (~divlamir@user/divlamir) |
| 01:26:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 01:26:43 | × | Tuplanolla quits (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) (Quit: Leaving.) |
| 01:29:52 | × | acidjnk quits (~acidjnk@p200300d6e717192391252480cf04477b.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 01:33:24 | → | omidmash1 joins (~omidmash@user/omidmash) |
| 01:34:55 | × | omidmash quits (~omidmash@user/omidmash) (Ping timeout: 240 seconds) |
| 01:34:56 | omidmash1 | is now known as omidmash |
| 01:37:20 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:42:09 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 01:45:34 | × | tt123160 quits (~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) (Ping timeout: 246 seconds) |
| 01:45:37 | × | Googulator25 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 01:45:40 | → | Googulator41 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 01:53:07 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 01:57:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 02:03:15 | × | Square2 quits (~Square@user/square) (Ping timeout: 240 seconds) |
| 02:08:55 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:11:04 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 02:13:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 02:19:57 | → | tt123160 joins (~tt1231@2603:6010:8700:4a81:a4f6:acff:fe95:3803) |
| 02:23:43 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 246 seconds) |
| 02:24:41 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:25:37 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 02:30:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 02:40:29 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:45:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 02:45:56 | → | Googulator45 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 02:46:13 | × | Googulator41 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 02:46:40 | × | pointlessslippe- quits (~pointless@62.106.85.17) (Read error: Connection reset by peer) |
| 02:49:02 | → | pointlessslippe1 joins (~pointless@62.106.85.17) |
| 02:55:47 | × | poscat quits (~poscat@user/poscat) (Remote host closed the connection) |
| 02:56:01 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 02:57:57 | → | deptype joins (~deptype@2406:b400:3a:9d2f:23b7:e1a3:7fe:1a22) |
| 02:58:53 | → | poscat joins (~poscat@user/poscat) |
| 03:00:49 | × | karenw quits (~karenw@user/karenw) (Ping timeout: 246 seconds) |
| 03:02:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 03:14:04 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:14:49 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 246 seconds) |
| 03:15:58 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 03:18:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 03:29:54 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:30:01 | × | machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 264 seconds) |
| 03:32:35 | × | monochrom quits (trebla@216.138.220.146) (Quit: ZNC 1.9.1+deb2build5 - https://znc.in) |
| 03:34:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 03:40:55 | → | monochrom joins (trebla@216.138.220.146) |
| 03:45:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 03:45:49 | → | Googulator78 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 03:45:57 | × | Googulator45 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 03:50:17 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 03:56:31 | → | AlexNoo_ joins (~AlexNoo@94.233.240.243) |
| 03:59:05 | × | AlexZenon quits (~alzenon@85.174.180.40) (Ping timeout: 245 seconds) |
| 03:59:35 | × | AlexNoo quits (~AlexNoo@85.174.180.40) (Ping timeout: 240 seconds) |
| 03:59:40 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 04:01:17 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:03:11 | → | AlexZenon joins (~alzenon@94.233.240.243) |
| 04:03:49 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Ping timeout: 246 seconds) |
| 04:05:10 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 04:05:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 04:17:02 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:20:50 | × | Googulator78 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 04:21:03 | → | Googulator78 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 04:22:31 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 04:31:15 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 04:31:49 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 04:32:51 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:36:18 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 04:37:24 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 04:37:52 | × | Pozyomka quits (~pyon@user/pyon) (Quit: brb) |
| 04:38:11 | → | Pozyomka joins (~pyon@user/pyon) |
| 04:41:01 | × | rekahsoft quits (~rekahsoft@70.51.99.245) (Remote host closed the connection) |
| 04:48:38 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:53:52 | × | peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 246 seconds) |
| 04:54:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 04:54:08 | → | sp1ff joins (~user@2601:1c2:4c00:6820::c593) |
| 04:56:46 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer) |
| 04:57:20 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 04:57:31 | × | Pozyomka quits (~pyon@user/pyon) (Quit: brb) |
| 04:59:12 | → | Pozyomka joins (~pyon@user/pyon) |
| 05:04:26 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:09:16 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 05:13:13 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 05:20:41 | × | Googulator78 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 05:20:45 | → | Googulator82 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 05:21:13 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:25:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 05:25:42 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 05:32:34 | → | bggd_ joins (~bgg@2a01:e0a:fd5:f510:6dea:c12d:7938:d990) |
| 05:34:55 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds) |
| 05:35:41 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 05:36:36 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:43:15 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 05:44:55 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 05:50:42 | → | Googulator66 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 05:50:48 | × | Googulator82 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 05:51:58 | → | michalz joins (~michalz@185.246.207.201) |
| 05:54:39 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:58:44 | × | Pozyomka quits (~pyon@user/pyon) (Quit: WeeChat 4.8.1) |
| 06:01:29 | → | Pozyomka joins (~pyon@user/pyon) |
| 06:01:48 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 06:06:04 | → | takuan joins (~takuan@d8D86B9E9.access.telenet.be) |
| 06:24:15 | × | peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 244 seconds) |
| 06:25:55 | × | Pixi quits (~Pixi@user/pixi) (Ping timeout: 240 seconds) |
| 06:27:58 | → | Pixi joins (~Pixi@user/pixi) |
| 06:28:52 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer) |
| 06:29:18 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 06:38:12 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 244 seconds) |
| 06:50:44 | × | Googulator66 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 06:50:52 | → | Googulator66 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 06:56:37 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 255 seconds) |
| 06:58:11 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 07:00:26 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 07:12:01 | → | Enrico63 joins (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) |
| 07:20:36 | × | ft quits (~ft@p508db844.dip0.t-ipconnect.de) (Quit: leaving) |
| 07:20:46 | → | Googulator4 joins (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) |
| 07:21:03 | × | Googulator66 quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Quit: Client closed) |
| 07:26:48 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:31:19 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 07:37:00 | × | marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 07:41:56 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:46:24 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 07:52:34 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:56:46 | × | Enrico63 quits (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed) |
| 07:57:33 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:00:40 | × | peutri_ quits (~peutri@bobo.desast.re) (Ping timeout: 265 seconds) |
| 08:02:36 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:03:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 08:08:50 | × | trickard quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 08:09:04 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 08:11:00 | Googulator4 | is now known as Googulator |
| 08:11:56 | → | peutri joins (~peutri@bobo.desast.re) |
| 08:13:19 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:13:23 | × | peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 260 seconds) |
| 08:14:07 | → | Enrico63 joins (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) |
| 08:15:09 | × | Enrico63 quits (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Client Quit) |
| 08:15:49 | × | Googulator quits (~Googulato@2a01-036d-0106-01cb-8583-2a78-a55c-bee5.pool6.digikabel.hu) (Ping timeout: 272 seconds) |
| 08:17:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 08:19:21 | → | Enrico63 joins (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) |
| 08:19:37 | × | larsivi quits (~larsivi@user/larsivi) (Quit: WeeChat 4.8.1) |
| 08:21:04 | AlexNoo_ | is now known as AlexNoo |
| 08:24:22 | trickard_ | is now known as trickard |
| 08:28:44 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:34:01 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 08:37:04 | → | machinedgod joins (~machinedg@d75-159-126-101.abhsia.telus.net) |
| 08:43:08 | × | Enrico63 quits (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed) |
| 08:44:31 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:47:20 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Remote host closed the connection) |
| 08:49:15 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 08:49:18 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 08:58:43 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 08:58:54 | bggd_ | is now known as bggd |
| 09:04:01 | → | tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) |
| 09:10:18 | × | bggd quits (~bgg@2a01:e0a:fd5:f510:6dea:c12d:7938:d990) (Changing host) |
| 09:10:18 | → | bggd joins (~bgg@user/bggd) |
| 09:17:55 | → | acidjnk joins (~acidjnk@p200300d6e717190330ae5c7be13b8759.dip0.t-ipconnect.de) |
| 09:30:27 | <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 :) |
| 09:44:03 | × | tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 09:52:04 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 09:54:05 | → | chele joins (~chele@user/chele) |
| 09:56:37 | → | AnkurAlpha joins (~ankur@user/AnkurAlpha) |
| 09:56:49 | → | Googulator joins (~Googulato@team.broadbit.hu) |
| 09:57:11 | → | poscat0x04 joins (~poscat@user/poscat) |
| 09:57:35 | × | poscat quits (~poscat@user/poscat) (Ping timeout: 240 seconds) |
| 09:57:43 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 240 seconds) |
| 10:02:00 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 10:02:29 | → | __monty__ joins (~toonn@user/toonn) |
| 10:03:42 | × | trickard quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 10:03:55 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 10:04:59 | → | lucabtz joins (~lucabtz@user/lucabtz) |
| 10:08:27 | × | poscat0x04 quits (~poscat@user/poscat) (Remote host closed the connection) |
| 10:08:30 | trickard_ | is now known as trickard |
| 10:09:41 | → | poscat joins (~poscat@user/poscat) |
| 10:14:14 | × | lucabtz quits (~lucabtz@user/lucabtz) (Quit: leaving) |
| 10:14:25 | → | lucabtz joins (~lucabtz@user/lucabtz) |
| 10:17:23 | × | poscat quits (~poscat@user/poscat) (Remote host closed the connection) |
| 10:18:06 | → | poscat joins (~poscat@user/poscat) |
| 10:24:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 10:25:07 | × | deptype quits (~deptype@2406:b400:3a:9d2f:23b7:e1a3:7fe:1a22) (Remote host closed the connection) |
| 10:27:55 | → | Tuplanolla joins (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) |
| 10:37:47 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 10:38:15 | <gentauro> | related xD https://xkcd.com/2453/ |
| 10:42:56 | × | tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 10:44:50 | → | tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) |
| 10:52:30 | × | Katarushisu quits (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) (Ping timeout: 244 seconds) |
| 11:00:40 | → | Enrico63 joins (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) |
| 11:02:07 | <Enrico63> | Hi, there. I'd like some clarification on rank-n types. |
| 11:02:08 | <Enrico63> | The id function has type `forall a. a -> a` which is rank 1, right? |
| 11:03:53 | <lucabtz> | yes rank 1 |
| 11:05:25 | <Enrico63> | Instead, if I have `(forall a. a -> a) -> b`, that's rank 2, right? |
| 11:05:37 | <Enrico63> | (Be damned the formatting, ahhah) |
| 11:06:02 | <Enrico63> | Well, that's the same as `forall b. (forall a. a -> a) -> b` |
| 11:06:09 | <Enrico63> | It is rank 2, correct? |
| 11:07:01 | <mauke> | https://wiki.haskell.org/Rank-N_types |
| 11:07:52 | <Enrico63> | I come _from_ that page |
| 11:08:52 | <mauke> | well, it's what I would've used to answer your question :-) |
| 11:09:41 | <Enrico63> | Yeah, I don't quite get what's unclear to me, so I asked those previous questions to have something to hinge on |
| 11:10:10 | <mauke> | (the answer is yes) |
| 11:12:00 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 11:12:08 | <haskellbridge> | <loonycyborg> I personally found the trick to understanding rank-n is that they're about polymorphic functions that can take other polymorphic functions. |
| 11:12:31 | × | trickard quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 11:12:37 | <Enrico63> | loonycyborg, yeah, I'm also (halfway) there |
| 11:12:39 | <haskellbridge> | <loonycyborg> With rank 1 all variables are set at outer scope and you won't be passing any polymorphic functions. |
| 11:13:44 | <Enrico63> | Whereas rank 2 means that the implementation (i.e. the inner scope) chooses the type variable of the inner forall |
| 11:15:05 | <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 |
| 11:15:15 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 11:16:06 | <lucabtz> | i think rank N means it has rank N-1 as its arguments, the base case rank 0 being a monomorphic value/function |
| 11:16:30 | <mauke> | forall b. ((forall a. a -> b) -> b) -> b |
| 11:16:59 | <mauke> | is that rank-2? |
| 11:17:12 | <Enrico63> | mauke, that is rank 3? |
| 11:17:20 | <mauke> | according to the wiki page, it's rank 2 |
| 11:18:04 | <Enrico63> | Umpf |
| 11:18:21 | <mauke> | but then, according to that page (forall a. a) -> Int is rank 1 |
| 11:18:26 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 11:18:40 | <mauke> | this doesn't feel right |
| 11:18:53 | <Enrico63> | Yeah, how's that? `Int -> Int` is rank 0, right? |
| 11:19:07 | <Enrico63> | `forall a. a -> a` (e.g. the type of id) is rank 1 |
| 11:19:13 | × | pabs3 quits (~pabs3@user/pabs3) (Ping timeout: 246 seconds) |
| 11:19:41 | <Enrico63> | and the caller "chooses" the `a` |
| 11:20:26 | <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 |
| 11:20:59 | <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? |
| 11:21:21 | <mauke> | the wiki page defines "rank" as the number of foralls in the type |
| 11:22:31 | <lucabtz> | mauke: it doesnt though, it says forall a. a -> (forall b. b -> a) is rank 1 |
| 11:22:31 | <Enrico63> | *which are nested and cannot be merged with a previous one* |
| 11:22:53 | <mauke> | lucabtz: that one is mergeable |
| 11:23:08 | <lucabtz> | yeah you were missing what Enrico63 added :P |
| 11:23:18 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 11:23:33 | <mauke> | that still leaves (forall a. a) -> Int at rank 1 |
| 11:23:47 | <Enrico63> | It should be rank 2, I understand |
| 11:24:48 | trickard_ | is now known as trickard |
| 11:25:31 | <Enrico63> | For instance, this compiles |
| 11:25:31 | <Enrico63> | foo :: (forall a. a) -> Int |
| 11:25:32 | <Enrico63> | foo x = x + 1 |
| 11:26:10 | <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. |
| 11:26:11 | <Enrico63> | No? |
| 11:28:10 | <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? |
| 11:30:52 | <mauke> | this looks much better: https://stackoverflow.com/questions/22362196/what-is-n-in-rankntypes |
| 11:31:19 | <mauke> | Enrico63: yes, that's a H98 type (by floating out the forall) |
| 11:31:28 | <merijn> | Enrico63: This is the clearest example of Rank1 vs RankN I cooked up a few years ago: https://gist.github.com/merijn/77e3fa9757658e59b01d |
| 11:32:20 | <mauke> | yeah, when I search for "rank-n type", most results are examples like ^ |
| 11:32:33 | <mauke> | which is useless if I want to know the actual definition of "rank" |
| 11:32:43 | → | pabs3 joins (~pabs3@user/pabs3) |
| 11:32:46 | <merijn> | sure |
| 11:32:58 | <mauke> | the SO page I found is better, but includes two incompatible answers :-) |
| 11:33:18 | <merijn> | then again, in practice there's very little value in knowing the exact rank of a type :p |
| 11:33:30 | → | Square2 joins (~Square@user/square) |
| 11:33:37 | <merijn> | In practice the value is understanding "why does this not compile and how can I make it do what I want" :p |
| 11:34:01 | <merijn> | Especially since GHC doesn't even distinguish between Rank2 and RankN |
| 12:01:13 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 264 seconds) |
| 12:02:19 | → | __monty__ joins (~toonn@user/toonn) |
| 12:02:46 | × | pabs3 quits (~pabs3@user/pabs3) (Ping timeout: 244 seconds) |
| 12:04:28 | → | pabs3 joins (~pabs3@user/pabs3) |
| 12:16:13 | → | Katarushisu joins (~Katarushi@finc-20-b2-v4wan-169598-cust1799.vm7.cable.virginm.net) |
| 12:20:57 | → | Googulator50 joins (~Googulato@team.broadbit.hu) |
| 12:24:43 | × | Googulator quits (~Googulato@team.broadbit.hu) (Ping timeout: 272 seconds) |
| 12:27:35 | × | chromoblob quits (~chromoblo@user/chromob1ot1c) (Ping timeout: 240 seconds) |
| 12:29:25 | × | lucabtz quits (~lucabtz@user/lucabtz) (Ping timeout: 264 seconds) |
| 12:30:17 | → | chromoblob joins (~chromoblo@user/chromob1ot1c) |
| 12:35:12 | → | lucabtz joins (~lucabtz@user/lucabtz) |
| 12:35:24 | <lucabtz> | isnt the definition as rank N has as parameters rank N-1 types correct? |
| 12:36:47 | → | xff0x joins (~xff0x@2405:6580:b080:900:d3a9:b169:555e:b9ec) |
| 12:38:55 | × | Enrico63 quits (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed) |
| 12:44:11 | × | tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:55:30 | × | lucabtz quits (~lucabtz@user/lucabtz) (Quit: leaving) |
| 12:56:23 | × | Googulator50 quits (~Googulato@team.broadbit.hu) (Ping timeout: 272 seconds) |
| 12:59:13 | → | lucabtz joins (~lucabtz@user/lucabtz) |
| 13:02:24 | → | lucabtz_ joins (~lucabtz@user/lucabtz) |
| 13:03:39 | <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 |
| 13:04:34 | × | lucabtz quits (~lucabtz@user/lucabtz) (Ping timeout: 246 seconds) |
| 13:06:30 | <lucabtz_> | though the only foralls which can be implicit are the ones at the top level no? |
| 13:07:05 | lucabtz_ | is now known as lucabtz |
| 13:12:55 | → | fp joins (~Thunderbi@2001:708:150:10::7e06) |
| 13:17:41 | × | fp quits (~Thunderbi@2001:708:150:10::7e06) (Ping timeout: 244 seconds) |
| 13:24:02 | × | trickard quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 13:24:15 | → | trickard joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 13:27:31 | → | fp joins (~Thunderbi@130.233.70.102) |
| 13:29:35 | → | stef204 joins (~stef204@user/stef204) |
| 13:31:33 | → | Enrico63 joins (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) |
| 13:40:57 | × | Everything quits (~Everythin@172-232-54-192.ip.linodeusercontent.com) (Quit: leaving) |
| 14:03:54 | → | tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) |
| 14:06:49 | → | karenw joins (~karenw@user/karenw) |
| 14:08:37 | → | euphores joins (~SASL_euph@user/euphores) |
| 14:20:54 | → | Square joins (~Square4@user/square) |
| 14:26:44 | × | ouilemur quits (~jgmerritt@user/ouilemur) (Ping timeout: 260 seconds) |
| 14:30:16 | → | ouilemur joins (~jgmerritt@user/ouilemur) |
| 14:32:05 | × | ouilemur quits (~jgmerritt@user/ouilemur) (Max SendQ exceeded) |
| 14:33:29 | × | yin quits (~zero@user/zero) (Killed (NickServ (GHOST command used by Guest900!~yin@a89-153-191-69.cpe.netcabo.pt))) |
| 14:34:51 | → | ft joins (~ft@p508db844.dip0.t-ipconnect.de) |
| 14:39:13 | → | ouilemur joins (~jgmerritt@user/ouilemur) |
| 14:39:19 | × | Square quits (~Square4@user/square) (Ping timeout: 244 seconds) |
| 14:42:22 | × | ouilemur quits (~jgmerritt@user/ouilemur) (Max SendQ exceeded) |
| 14:49:29 | → | ouilemur joins (~jgmerritt@user/ouilemur) |
| 14:50:36 | × | ouilemur quits (~jgmerritt@user/ouilemur) (Max SendQ exceeded) |
| 14:50:43 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:51:23 | → | sldkfjlskdjf joins (~zero@user/zero) |
| 14:51:29 | × | sldkfjlskdjf quits (~zero@user/zero) (Remote host closed the connection) |
| 14:51:44 | → | sldkfjlskdjf joins (~zero@user/zero) |
| 14:54:11 | × | fp quits (~Thunderbi@130.233.70.102) (Quit: fp) |
| 14:54:32 | → | fp joins (~Thunderbi@2001:708:20:1406::10c5) |
| 14:55:49 | → | ouilemur joins (~jgmerritt@user/ouilemur) |
| 14:57:36 | × | ouilemur quits (~jgmerritt@user/ouilemur) (Max SendQ exceeded) |
| 14:59:55 | × | trickard quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Ping timeout: 240 seconds) |
| 15:00:17 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 15:05:00 | × | tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:05:46 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 15:06:11 | sldkfjlskdjf | is now known as yin |
| 15:10:09 | → | tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) |
| 15:13:45 | → | Wygulmage joins (~Wygulmage@user/Wygulmage) |
| 15:14:57 | trickard_ | is now known as trickard |
| 15:21:15 | × | jreicher quits (~user@user/jreicher) (Ping timeout: 240 seconds) |
| 15:21:54 | × | trickard quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 15:22:07 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 15:22:33 | × | Enrico63 quits (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed) |
| 15:22:40 | → | jreicher joins (~user@user/jreicher) |
| 15:22:48 | → | ouilemur joins (~jgmerritt@user/ouilemur) |
| 15:26:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 15:27:01 | × | trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Ping timeout: 264 seconds) |
| 15:27:24 | × | ouilemur quits (~jgmerritt@user/ouilemur) (Ping timeout: 260 seconds) |
| 15:29:06 | → | ouilemur joins (~jgmerritt@user/ouilemur) |
| 15:32:46 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 15:34:02 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 15:37:01 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 15:41:15 | × | skum quits (~skum@user/skum) (Quit: WeeChat 4.8.1) |
| 15:42:17 | × | ouilemur quits (~jgmerritt@user/ouilemur) (Ping timeout: 250 seconds) |
| 15:43:50 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 15:44:25 | → | ouilemur joins (~jgmerritt@user/ouilemur) |
| 15:44:43 | × | fp quits (~Thunderbi@2001:708:20:1406::10c5) (Ping timeout: 264 seconds) |
| 15:50:38 | → | deptype joins (~deptype@2406:b400:3a:9d2f:c928:dba3:487d:1bc) |
| 15:52:07 | → | Enrico63 joins (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) |
| 15:54:04 | × | lucabtz quits (~lucabtz@user/lucabtz) (Quit: Lost terminal) |
| 15:54:47 | × | trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 15:54:56 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 15:55:00 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 15:59:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 16:00:46 | → | skum joins (~skum@user/skum) |
| 16:03:36 | → | pebble joins (~pebble@37.63.32.91) |
| 16:05:21 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 16:10:43 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 16:15:36 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 16:16:17 | <ski> | Enrico63 : "Well, that's the same as `forall b. (forall a. a -> a) -> b`" -- no |
| 16:20:47 | <Enrico63> | ski, why? |
| 16:26:45 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 16:27:23 | × | Enrico63 quits (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed) |
| 16:30:49 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 250 seconds) |
| 16:31:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 16:34:26 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 16:39:33 | ski | blinks |
| 16:42:33 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 16:47:21 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 16:48:09 | → | Enrico63 joins (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) |
| 16:48:38 | <Enrico63> | ski , blinks? |
| 16:49:00 | <EvanR> | is (forall a . a -> a) -> b the same as forall b . (forall a . a -> a) -> b |
| 16:49:06 | <EvanR> | using implicit forall it seems so |
| 16:50:54 | <kuribas> | Yes, except for scoped type variables. |
| 16:53:37 | → | __monty__ joins (~toonn@user/toonn) |
| 16:58:21 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 17:00:12 | trickard_ | is now known as trickard |
| 17:01:07 | <ski> | Enrico63 : `[a] -> [a]' is not the same as `forall a. [a] -> [a]' |
| 17:02:25 | <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 |
| 17:03:16 | <mauke> | similarly, [a] -> Int is not the same as ([a] -> Int) |
| 17:03:18 | <ski> | Enrico63 : in *most* (but not all) circumstances, `foo :: ..a..' is interpreted as `foo :: forall a. ..a..' |
| 17:03:19 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 17:03:33 | <mauke> | if it was, then [a] -> Integer would be the same as ([a] -> Int)eger |
| 17:03:55 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 240 seconds) |
| 17:05:43 | <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') |
| 17:08:28 | <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') |
| 17:08:47 | <ski> | (so, that's a "polymorphic method" example) |
| 17:11:24 | <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? |
| 17:11:47 | <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 |
| 17:12:00 | <ski> | Enrico63 : for the most part, yes |
| 17:12:41 | <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) |
| 17:12:48 | × | acidjnk quits (~acidjnk@p200300d6e717190330ae5c7be13b8759.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 17:14:07 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 17:14:07 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 17:14:50 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 244 seconds) |
| 17:18:51 | → | sindu joins (~sindu@2.148.32.207.tmi.telenormobil.no) |
| 17:19:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 17:22:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 17:27:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 17:27:50 | → | __monty__ joins (~toonn@user/toonn) |
| 17:28:28 | × | Enrico63 quits (~Enrico63@host-95-251-99-143.retail.telecomitalia.it) (Quit: Client closed) |
| 17:38:07 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 17:40:37 | → | kuribas joins (~user@2a02:1808:cd:c4e1:9d3f:f177:3913:c0a7) |
| 17:40:46 | × | AnkurAlpha quits (~ankur@user/AnkurAlpha) (Quit: leaving) |
| 17:42:37 | × | chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 17:42:46 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 17:42:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 17:43:24 | → | ZLima12_ joins (~zlima12@user/meow/ZLima12) |
| 17:43:54 | × | ZLima12 quits (~zlima12@user/meow/ZLima12) (Ping timeout: 260 seconds) |
| 17:50:42 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 17:53:53 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 17:58:31 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 17:59:45 | × | Wygulmage quits (~Wygulmage@user/Wygulmage) (Ping timeout: 272 seconds) |
| 18:02:04 | <EvanR> | mauke, lol |
| 18:02:27 | <EvanR> | x cannot possibly equal 3 |
| 18:02:57 | <EvanR> | if it was, then boxcar would = bo3car |
| 18:03:08 | <EvanR> | clearly nonsense |
| 18:03:35 | × | kuribas quits (~user@2a02:1808:cd:c4e1:9d3f:f177:3913:c0a7) (Remote host closed the connection) |
| 18:03:49 | → | kuribas joins (~user@2a02:1808:cd:c4e1:d615:9737:dd6:7ffc) |
| 18:03:54 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 18:09:16 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:12:15 | × | karenw quits (~karenw@user/karenw) (Ping timeout: 240 seconds) |
| 18:14:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 18:18:00 | × | defragger quits (~random@i5C742CE2.versanet.de) (Remote host closed the connection) |
| 18:23:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:25:55 | → | gorignak joins (~gorignak@user/gorignak) |
| 18:28:35 | × | deptype quits (~deptype@2406:b400:3a:9d2f:c928:dba3:487d:1bc) (Remote host closed the connection) |
| 18:28:40 | × | trickard quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 18:28:53 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 18:30:27 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 18:30:59 | × | tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:38:56 | × | kuribas quits (~user@2a02:1808:cd:c4e1:d615:9737:dd6:7ffc) (Ping timeout: 256 seconds) |
| 18:41:31 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:46:10 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 18:47:17 | → | kuribas joins (~user@2a02:1808:cd:c4e1:426f:b0ba:9911:461) |
| 18:50:04 | <gentauro> | is there a way to install a `cabal` project with `stack`? |
| 18:50:25 | <gentauro> | I recall there was a `cabal2stack` right? |
| 18:50:38 | × | haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 18:53:57 | <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? |
| 18:55:35 | <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 :) |
| 18:57:18 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:57:54 | → | tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) |
| 19:02:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 19:13:05 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:14:13 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 19:16:47 | × | kuribas quits (~user@2a02:1808:cd:c4e1:426f:b0ba:9911:461) (Ping timeout: 250 seconds) |
| 19:17:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 19:21:44 | × | tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:23:28 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 19:24:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:29:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 19:31:50 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 19:31:57 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
| 19:34:34 | Lord_of_Life_ | is now known as Lord_of_Life |
| 19:36:26 | → | Psychotic1 joins (~Psychotic@2600:1007:b0a4:1e01:107b:5dec:754f:b240) |
| 19:40:15 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:42:36 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 19:42:43 | <__monty__> | Does sortBy work for a partial ordering relation? |
| 19:43:00 | <__monty__> | I think not since it would not be transitive? |
| 19:43:47 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 19:44:57 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 19:46:46 | <tomsmeding> | __monty__: how would you pass a partial ordering to sortBy? As a partial function? |
| 19:49:39 | <dolio> | If it's just false both ways for incomparable elements, then you're not going to get reliable results, no. |
| 19:53:58 | × | myme quits (~myme@2a01:799:d5e:5f00:b47a:83fd:4eab:92be) (Ping timeout: 260 seconds) |
| 19:54:31 | <davean> | There are levels of partiality |
| 19:54:48 | → | myme joins (~myme@2a01:799:d5e:5f00:e46f:4150:c7c:78b) |
| 19:56:02 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:57:18 | → | tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) |
| 20:00:59 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 20:09:33 | × | fgarcia quits (~lei@user/fgarcia) (Quit: Remote host closed the connection) |
| 20:11:51 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:12:18 | <ski> | __monty__ : it would still be transitive, but that wouldn't help |
| 20:13:03 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj) |
| 20:13:22 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 20:15:51 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 20:16:58 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 20:18:06 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds) |
| 20:18:07 | ljdarj1 | is now known as ljdarj |
| 20:19:41 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 20:25:26 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:27:50 | × | stef204 quits (~stef204@user/stef204) (Quit: WeeChat 4.2.1) |
| 20:30:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 20:32:00 | × | Psychotic1 quits (~Psychotic@2600:1007:b0a4:1e01:107b:5dec:754f:b240) (Quit: Leaving) |
| 20:34:02 | × | trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 20:34:15 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 20:34:24 | <jreicher> | You could have a stable sort treating incomparable as "equal", but you'd have to be really sure that's what you wanted. |
| 20:36:05 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 20:39:52 | <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 |
| 20:41:15 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:42:45 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 20:45:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 20:50:35 | trickard_ | is now known as trickard |
| 20:50:53 | → | califax joins (~califax@user/califx) |
| 20:54:18 | <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 |
| 20:54:42 | <EvanR> | is there a "show float with more decimals but correctly" |
| 20:56:57 | → | jmcantrell_ joins (~weechat@user/jmcantrell) |
| 20:57:02 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:58:25 | <int-e> | > toRational (1.23) * 10^53 |
| 20:58:27 | <lambdabot> | 122999999999999998223643160599749535322189331054687500 % 1 |
| 21:00:36 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 21:00:47 | <EvanR> | what the heck is showFFloat even doing, hopefully getting performance out of its corner cutting |
| 21:01:43 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 21:02:47 | <EvanR> | 1.2300000000000000000000000000000 just seems absurd |
| 21:02:53 | <Lycurgus> | engrish is so much funl, case in point, that is the 'even' of exasperation |
| 21:02:58 | <monochrom> | > showFFloat Nothing 1.23 "" |
| 21:02:59 | <lambdabot> | "1.23" |
| 21:03:02 | <Lycurgus> | *fun |
| 21:03:14 | <EvanR> | yes Nothing seems to evoke the blessed algorithm |
| 21:03:45 | <monochrom> | > showFFloat (Just 100) 0 "" |
| 21:03:46 | <lambdabot> | "0.0000000000000000000000000000000000000000000000000000000000000000000000000... |
| 21:03:51 | <EvanR> | which is fine but it takes Just something for seemingly a reason |
| 21:04:49 | <monochrom> | So I think the author just decided that if you have "Just n" then it unconditionally ensures n digits. |
| 21:05:01 | <EvanR> | maybe if you ask for over 17 significant digits it just slaps 0 on the rest |
| 21:05:04 | <monochrom> | Even if you're just printing 0. |
| 21:05:16 | <EvanR> | I know |
| 21:05:28 | <EvanR> | but in the case of 1.23 it's not the correct digits |
| 21:05:53 | <EvanR> | (1.229999999999999982236431605997495353221893310546875) |
| 21:06:15 | <monochrom> | Oh! Now I see what you mean. |
| 21:09:42 | <monochrom> | > length "1.2299999999999999" |
| 21:09:43 | <lambdabot> | 18 |
| 21:11:05 | <EvanR> | basically it's taking the liberty of rounding up |
| 21:11:07 | <EvanR> | in this case |
| 21:11:16 | <EvanR> | not really, I'm sure, but that's the effect |
| 21:12:12 | <monochrom> | let s = "1.22999999999999999" in (length s, read s :: Double) |
| 21:12:16 | <monochrom> | > let s = "1.22999999999999999" in (length s, read s :: Double) |
| 21:12:17 | <lambdabot> | (19,1.23) |
| 21:12:36 | <EvanR> | leading me to the conclusion that: truncating "the string" of a positive float is not the same as rounding down |
| 21:12:50 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:12:55 | <EvanR> | which I was trying to demonstrate for reasons |
| 21:13:09 | <monochrom> | I think it's because at the limited precision of 18 digits, the thing is indistinguishable from 1.23 |
| 21:13:28 | <EvanR> | yes, 1.23 |
| 21:13:57 | <EvanR> | but not 1.23 plus 100 zeros |
| 21:14:21 | × | trickard quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 21:14:34 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
| 21:16:46 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 21:19:45 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 21:26:27 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:31:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 21:36:37 | × | peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 264 seconds) |
| 21:40:49 | × | jmcantrell_ quits (~weechat@user/jmcantrell) (Ping timeout: 264 seconds) |
| 21:42:14 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:44:50 | × | michalz quits (~michalz@185.246.207.201) (Remote host closed the connection) |
| 21:46:27 | → | pavonia joins (~user@user/siracusa) |
| 21:47:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 21:54:08 | × | bggd quits (~bgg@user/bggd) (Remote host closed the connection) |
| 21:58:02 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:02:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 22:08:39 | → | acidjnk joins (~acidjnk@p200300d6e7171903602e983dc1ab5a13.dip0.t-ipconnect.de) |
| 22:08:48 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 22:10:11 | → | spew joins (~spew@user/spew) |
| 22:13:58 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:19:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 22:20:12 | × | spew quits (~spew@user/spew) (Quit: WeeChat 4.7.2) |
| 22:29:47 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:34:14 | <sindu> | /quit |
| 22:34:23 | × | sindu quits (~sindu@2.148.32.207.tmi.telenormobil.no) (Quit: WeeChat 4.7.1) |
| 22:34:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 22:37:27 | × | tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:44:48 | <mauke> | > 1.229999999999999982236431605997495353221893310546875 == 1.23 |
| 22:44:49 | <lambdabot> | True |
| 22:45:05 | <mauke> | can't show what's not there |
| 22:45:32 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:46:20 | → | ephemient joins (uid407513@user/ephemient) |
| 22:51:07 | <EvanR> | 1.23 is showing plenty that is "not there" |
| 22:51:50 | → | tromp joins (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) |
| 22:52:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 22:59:53 | <int-e> | EvanR: Have you asked this previously? The topic certainly sounds familiar. I traces back to everybody using https://gitlab.haskell.org/ghc/ghc/-/blob/master/libraries/ghc-internal/src/GHC/Internal/Float.hs?ref_type=heads#L1121-1209 (even text-show has a copy of that function) for printing floating point values and for 1.23 that returns ([1,2,3],1) |
| 23:02:44 | <EvanR> | it does sound familiar |
| 23:03:26 | <EvanR> | > showFFloat (Just 0) 1.23 "" |
| 23:03:27 | <lambdabot> | "1" |
| 23:03:30 | <EvanR> | > showFFloat (Just 1) 1.23 "" |
| 23:03:32 | <lambdabot> | "1.2" |
| 23:03:36 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:03:37 | <EvanR> | > showFFloat (Just 2) 1.23 "" |
| 23:03:38 | <lambdabot> | "1.23" |
| 23:03:41 | <EvanR> | > showFFloat (Just 3) 1.23 "" |
| 23:03:43 | <lambdabot> | "1.230" |
| 23:03:57 | <EvanR> | ok it just reveals more of what floatToDigits returns |
| 23:05:42 | <EvanR> | the question you are referring to was, what actual algorithm is used in the Show instance for floats |
| 23:06:17 | <EvanR> | is the question to the linked answer |
| 23:06:57 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 23:08:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 23:12:20 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 23:13:53 | × | tromp quits (~textual@2001:1c00:3487:1b00:dd4:56d:fd02:60e2) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:19:46 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:22:17 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds) |
| 23:24:31 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 23:33:15 | → | jmcantrell_ joins (~weechat@user/jmcantrell) |
| 23:35:03 | jmcantrell_ | is now known as jmcantrell |
| 23:35:34 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:36:46 | × | haskellbridge quits (~hackager@96.28.224.214) (Remote host closed the connection) |
| 23:37:17 | → | haskellbridge joins (~hackager@96.28.224.214) |
| 23:37:17 | ChanServ | sets mode +v haskellbridge |
| 23:39:55 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 23:44:48 | → | Guest27 joins (~Guest27@0x3ec6e79e.ejb.customer.dk.telia.net) |
| 23:45:26 | × | Guest27 quits (~Guest27@0x3ec6e79e.ejb.customer.dk.telia.net) (Client Quit) |
| 23:50:58 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:54:44 | × | trickard_ quits (~trickard@cpe-83-98-47-163.wireline.com.au) (Ping timeout: 244 seconds) |
| 23:54:55 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:55:35 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 23:57:20 | → | trickard_ joins (~trickard@cpe-83-98-47-163.wireline.com.au) |
All times are in UTC on 2025-12-12.