Home liberachat/#haskell: Logs Calendar

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.