Home liberachat/#haskell: Logs Calendar

Logs on 2023-01-04 (liberachat/#haskell)

00:02:11 × acidjnk quits (~acidjnk@p200300d6e7137a131414127c3bff1106.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
00:03:14 jmorris joins (uid537181@id-537181.uxbridge.irccloud.com)
00:07:25 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
00:11:48 <sm> maerwald will know the criteria for ghcup's recommended flag, or maybe it's in docs
00:12:04 × Tuplanolla quits (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
00:12:11 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 264 seconds)
00:12:42 × nasrudin__ quits (~nasrudin_@174.78.12.234) (Ping timeout: 272 seconds)
00:13:03 nasrudin__ joins (~nasrudin_@174.78.12.234)
00:13:35 FarisAlmutairi joins (~FarisAlmu@142.154.108.249)
00:14:47 × unit73e quits (~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) (Ping timeout: 252 seconds)
00:14:55 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
00:17:19 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 265 seconds)
00:17:51 r joins (~r@6.68.117.91.dynamic.reverse-mundo-r.com)
00:18:37 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
00:20:31 xff0x joins (~xff0x@p3326132-ipngn2103sapodori.hokkaido.ocn.ne.jp)
00:22:36 × r quits (~r@6.68.117.91.dynamic.reverse-mundo-r.com) (Quit: Leaving)
00:23:08 ddellacosta joins (~ddellacos@89.45.224.243)
00:26:45 × FarisAlmutairi quits (~FarisAlmu@142.154.108.249) (Quit: Client closed)
00:31:06 <zzz> @hoogle (a -> [a] -> b) -> [a] -> [[b]]
00:31:07 <lambdabot> No results found
00:31:37 <zzz> @hoogle (a -> [a] -> b) -> [a] -> [b]
00:31:38 <lambdabot> Data.Sort groupSort :: (Ord a) => (a -> [a] -> b) -> [a] -> [b]
00:32:21 <zzz> @hoogle (a -> a -> b) -> [a] -> [[b]]
00:32:22 <lambdabot> No results found
00:36:23 <mauke> @let select [] = []; select (x : xs) = (x, xs) : map (\(y, ys) -> (y, x : ys)) (select xs)
00:36:24 <lambdabot> Defined.
00:36:30 <mauke> :t select
00:36:31 <lambdabot> [a] -> [(a, [a])]
00:37:08 <mauke> :t \f -> map (uncurry f) . select
00:37:09 <lambdabot> (a -> [a] -> b) -> [a] -> [b]
00:37:14 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
00:38:56 <zzz> ha! nice
00:39:31 <zzz> isn;t there a more canonical way of doing select?
00:43:24 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
00:51:16 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
00:51:22 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
00:56:01 × fjmorazan quits (~quassel@user/fjmorazan) ()
00:56:08 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
00:57:48 jakalx joins (~jakalx@base.jakalx.net)
00:58:37 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
01:00:43 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
01:00:43 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
01:00:43 wroathe joins (~wroathe@user/wroathe)
01:07:35 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 246 seconds)
01:08:16 kritzefitz joins (~kritzefit@debian/kritzefitz)
01:08:44 × titibandit quits (~titibandi@xdsl-89-0-163-79.nc.de) (Remote host closed the connection)
01:10:16 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:10:26 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 252 seconds)
01:12:14 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
01:13:19 × nasrudin__ quits (~nasrudin_@174.78.12.234) (Ping timeout: 260 seconds)
01:14:18 nasrudin__ joins (~nasrudin_@174.78.12.234)
01:16:23 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:18:43 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:19:48 califax joins (~califax@user/califx)
01:25:44 <[Leary]> zzz: If you use a list zipper then `select` is just `duplicate`, the `Comonad` pair to `join`.
01:26:26 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 265 seconds)
01:27:00 <talismanick> geekosaur: Actually, I had this problem with 1.8.0.0 as well
01:27:09 <talismanick> 1.7.0.0 didn't, however
01:27:27 <geekosaur> that makes me wonder if they disabled a plugin for some reason
01:28:11 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds)
01:28:24 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
01:29:09 <talismanick> Ah, 1.8.0.0 changelog moved code actions from ghcide to the new hls-refactor-plugin
01:29:12 <geekosaur> hm, 1.8.0.0 moved stuff like that to a new plugin. I wonder if it has to be explicitly enabled
01:29:13 <talismanick> A clue
01:29:13 <geekosaur> yeh
01:32:41 × thongpv87 quits (~thongpv87@2402:9d80:3b5:d7b1:6629:a35e:8066:b5e3) (Read error: Connection reset by peer)
01:33:32 thongpv joins (~thongpv87@14.246.240.163)
01:33:42 <talismanick> On the command line, `hlint --refactor Main.hs` says I need to install the apply-refact package
01:37:30 <talismanick> Okay, now I can refactor at the command line, but Emacs still bugs out trying to apply it. Neat.
01:38:05 <geekosaur> I'm looking around on my system to see if there's some list of HLS plugins that needs to be updated
01:39:08 <talismanick> zzz: Also, all zippers are comonads, so duplicate-as-select works whenever you define one
01:39:50 <talismanick> You can autogenerate them with the Scrap Your Zippers package (paper explaining it under the same name)
01:40:06 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
01:40:47 <talismanick> Wait, that one's from 2010. Not sure what the modern one is.
01:42:30 <geekosaur> oh look, hls-refactor-plugin is on hackage. do you need to install it?
01:43:49 <talismanick> geekosaur: I don't believe so. If you use ghcup and want to build HLS with custom options, you'd use `ghcup compile hls -- ...`
01:43:52 <talismanick> IIRC
01:44:22 <geekosaur> but does that help if it's a plugin outside of the HLS package itself?
01:44:33 <geekosaur> which seems implied by it being on hackage
01:45:17 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
01:45:49 <talismanick> See https://haskell-language-server.readthedocs.io/en/latest/installation.html
01:46:58 × tremon quits (~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
01:47:18 <talismanick> the refactor plugin is Tier 1 (will always work), but the hlint plugin is Tier 2
01:48:13 <geekosaur> yeh, I just hit that
01:51:30 <geekosaur> I do wonder if you need to restart HLS after installing apply-refact (which the doc says is required for hlint suggestions to be applied)
01:51:51 fizbin joins (~fizbin@user/fizbin)
01:51:56 <geekosaur> tbh I've never tried this but I use vscode, haven't yet tried to configure HLS for emacs
01:51:59 <talismanick> Yeah, I immmediately ran the restart command before trying
02:02:54 × nasrudin__ quits (~nasrudin_@174.78.12.234) (Ping timeout: 272 seconds)
02:04:25 nasrudin__ joins (~nasrudin_@174.78.12.234)
02:05:32 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
02:07:35 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
02:08:45 hololeap is now known as shadowdaemon
02:09:15 shadowdaemon is now known as Guest2078
02:09:24 Guest2078 is now known as hololeap
02:12:34 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
02:13:02 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
02:13:40 × nasrudin__ quits (~nasrudin_@174.78.12.234) (Ping timeout: 272 seconds)
02:14:19 nasrudin__ joins (~nasrudin_@174.78.12.234)
02:20:24 × beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 260 seconds)
02:21:20 razetime joins (~Thunderbi@49.207.222.244)
02:27:57 × beefbambi quits (~beefbambi@183.82.178.237) (Read error: Connection reset by peer)
02:30:27 beefbambi joins (~beefbambi@183.82.178.237)
02:30:30 v0id_ptr joins (~adrift@user/ptr-frac7al/x-0038398)
02:40:23 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 264 seconds)
02:50:56 × jero98772 quits (~jero98772@190.158.28.44) (Remote host closed the connection)
02:53:51 jinsun joins (~jinsun@user/jinsun)
02:59:29 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
03:09:17 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
03:09:55 Blightmain joins (~Blightmai@203.29.154.219)
03:13:53 × nasrudin__ quits (~nasrudin_@174.78.12.234) (Ping timeout: 255 seconds)
03:14:16 × td_ quits (~td@83.135.9.22) (Ping timeout: 268 seconds)
03:14:41 nasrudin__ joins (~nasrudin_@174.78.12.234)
03:14:57 <talismanick> Ah, do believe I've found the relevant issue: https://github.com/haskell/haskell-language-server/issues/3241
03:15:45 td_ joins (~td@83.135.9.7)
03:16:15 <talismanick> (solution is to compile from source because of an absolute path hardcoded to "$something/gitlab.com/$something_else" in binary install )
03:16:41 × califax quits (~califax@user/califx) (Ping timeout: 255 seconds)
03:18:29 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
03:19:52 califax joins (~califax@user/califx)
03:20:48 × fizbin quits (~fizbin@user/fizbin) (Ping timeout: 272 seconds)
03:23:15 × nasrudin__ quits (~nasrudin_@174.78.12.234) (Ping timeout: 256 seconds)
03:29:17 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
03:36:58 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
03:37:12 mvk joins (~mvk@2607:fea8:5ce3:8500::3ed5)
03:42:41 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 255 seconds)
03:56:54 motherfsck joins (~motherfsc@user/motherfsck)
03:57:56 azimut joins (~azimut@gateway/tor-sasl/azimut)
03:58:58 × thegeekinside quits (~thegeekin@189.217.82.244) (Read error: Connection reset by peer)
04:01:08 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f0c4:47d2:c747:8246)
04:06:53 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
04:09:25 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
04:11:35 × califax quits (~califax@user/califx) (Ping timeout: 255 seconds)
04:12:03 califax joins (~califax@user/califx)
04:13:22 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
04:13:22 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
04:13:22 wroathe joins (~wroathe@user/wroathe)
04:16:36 × califax quits (~califax@user/califx) (Remote host closed the connection)
04:16:48 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
04:16:53 califax joins (~califax@user/califx)
04:18:14 × xff0x quits (~xff0x@p3326132-ipngn2103sapodori.hokkaido.ocn.ne.jp) (Ping timeout: 260 seconds)
04:20:30 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
04:20:51 Feuermagier joins (~Feuermagi@user/feuermagier)
04:21:17 × Feuermagier quits (~Feuermagi@user/feuermagier) (Max SendQ exceeded)
04:23:59 fizbin joins (~fizbin@user/fizbin)
04:24:57 justsomeguy joins (~justsomeg@user/justsomeguy)
04:25:03 × caryhartline quits (~caryhartl@2600:1700:2d0:8d30:ddb1:814:b62d:1133) (Quit: caryhartline)
04:29:54 × ddellacosta quits (~ddellacos@89.45.224.243) (Ping timeout: 260 seconds)
04:31:06 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 272 seconds)
04:32:53 thongpv87 joins (~thongpv87@14.246.240.163)
04:35:40 × thongpv quits (~thongpv87@14.246.240.163) (Ping timeout: 268 seconds)
04:36:15 × beefbambi quits (~beefbambi@183.82.178.237) (Read error: Connection reset by peer)
04:36:58 beefbambi joins (~beefbambi@183.82.178.237)
04:38:08 thongpv joins (~thongpv87@2402:9d80:3b5:d7b1:8b6f:d6d2:c847:4f3)
04:38:28 × thongpv quits (~thongpv87@2402:9d80:3b5:d7b1:8b6f:d6d2:c847:4f3) (Remote host closed the connection)
04:38:46 thongpv joins (~thongpv87@2402:9d80:3b5:d7b1:8b6f:d6d2:c847:4f3)
04:39:59 × thongpv87 quits (~thongpv87@14.246.240.163) (Ping timeout: 268 seconds)
04:40:09 caryhartline joins (~caryhartl@2600:1700:2d0:8d30:4ce2:f176:39d6:bafd)
04:41:50 × fizbin quits (~fizbin@user/fizbin) (Ping timeout: 268 seconds)
04:42:32 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 255 seconds)
04:43:04 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 268 seconds)
04:47:59 × beefbambi quits (~beefbambi@183.82.178.237) (Read error: Connection reset by peer)
04:48:26 × mvk quits (~mvk@2607:fea8:5ce3:8500::3ed5) (Quit: Going elsewhere)
04:48:38 beefbambi joins (~beefbambi@183.82.178.237)
04:51:32 × beefbambi quits (~beefbambi@183.82.178.237) (Read error: Connection reset by peer)
04:51:44 × jinsun quits (~jinsun@user/jinsun) (Ping timeout: 260 seconds)
04:52:14 beefbambi joins (~beefbambi@183.82.178.237)
04:52:51 × jmorris quits (uid537181@id-537181.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
04:54:19 instantaphex joins (~jb@c-73-171-252-84.hsd1.fl.comcast.net)
04:54:19 × beefbambi quits (~beefbambi@183.82.178.237) (Read error: Connection reset by peer)
04:54:57 beefbambi joins (~beefbambi@183.82.178.237)
04:58:58 × instantaphex quits (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 272 seconds)
04:59:30 × Blightmain quits (~Blightmai@203.29.154.219) (Quit: Leaving)
05:18:05 tubogram441 joins (~tubogram@user/tubogram)
05:18:51 × tubogram44 quits (~tubogram@user/tubogram) (Ping timeout: 240 seconds)
05:18:51 tubogram441 is now known as tubogram44
05:20:25 mbuf joins (~Shakthi@49.204.120.17)
05:20:55 irrgit_ joins (~irrgit@89.47.234.26)
05:24:18 × beefbambi quits (~beefbambi@183.82.178.237) (Ping timeout: 272 seconds)
05:24:23 × irrgit__ quits (~irrgit@176.113.74.74) (Ping timeout: 268 seconds)
05:24:47 irrgit__ joins (~irrgit@146.70.27.250)
05:25:44 × irrgit_ quits (~irrgit@89.47.234.26) (Ping timeout: 255 seconds)
05:27:04 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
05:27:32 beefbambi joins (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377)
05:39:47 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
05:43:23 × califax quits (~califax@user/califx) (Ping timeout: 255 seconds)
05:44:20 califax joins (~califax@user/califx)
05:47:06 × califax quits (~califax@user/califx) (Remote host closed the connection)
05:47:42 califax joins (~califax@user/califx)
05:53:39 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
06:04:50 × freeside quits (~mengwong@103.252.202.159) (Ping timeout: 272 seconds)
06:17:15 trev joins (~trev@user/trev)
06:17:22 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
06:21:24 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
06:35:18 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
06:36:56 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
06:38:44 ChaiTRex joins (~ChaiTRex@user/chaitrex)
06:39:21 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
06:54:25 × talismanick quits (~talismani@76.133.152.122) (Remote host closed the connection)
06:54:43 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
07:01:47 talismanick joins (~talismani@76.133.152.122)
07:03:24 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
07:07:29 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
07:12:20 <markasoftware> my haskell program, without any explicit parallelism, is using all four of my cpu cores when I turn on --rts-options -N4 with stack
07:12:20 <markasoftware> what in frick is going on
07:12:20 <markasoftware> i'm pretty sure none of the libraries I'm using are parallelized either
07:13:25 <markasoftware> haskell doesn't automatically parallelize anything right?
07:13:45 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
07:16:31 igghibu joins (~igghibu@178.249.211.100)
07:17:38 <markasoftware> even a simple ByteString.readFile seems to be using multiple cores
07:20:50 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
07:21:57 <markasoftware> and in fact the readFile is a lot faster when i enable -N2 but then slows down a bit as I go up to -N4 (probalby due to hyperthreading)
07:22:19 kuttenbrunzer joins (~kuttenbru@2a02:8108:8b80:1d48:b5b5:bddb:aaec:741)
07:28:56 gmg joins (~user@user/gehmehgeh)
07:29:26 × v0id_ptr quits (~adrift@user/ptr-frac7al/x-0038398) (Ping timeout: 246 seconds)
07:30:19 <[exa]> markasoftware: whew, what's the program actually doing?
07:30:32 <markasoftware> lots of stuff parsing a bytestring
07:31:24 <[exa]> like, with attoparsec?
07:32:11 <markasoftware> https://p.defau.lt/?MmwnUY7aktZbQLehyb5ueQ
07:32:32 <markasoftware> this seems to be enough to cause it to use much more cpu when -N2 is enabled
07:34:15 <markasoftware> but data.bytestring itself doesn't seem to have any parallel stuff -- does GHC's withBinaryFile internally parallelize?
07:34:38 <markasoftware> and no not using attoparsec -- mainly using Data.Binary.Get
07:34:48 <[exa]> can you check user vs real time spent with `time` ?
07:36:55 <markasoftware> user time increases a lot when I enable -N2 compared to no parallelization -- on a several gigabyte file I'm testig with, increases from 0.4s user to 1.5s user. Real time drops by half. Sys time stays the same
07:38:34 <[exa]> parallel magicks
07:39:08 <[exa]> can you try if the change is triggered by just enabling the threaded runtime?
07:40:06 <markasoftware> well i can't even supply -N4 when threaded is disabled
07:40:15 <c_wraith> if nothing else, the parallel GC might be contributing
07:40:31 <[exa]> markasoftware: I meant "completely no flags" vs "threaded + N1"
07:40:35 <markasoftware> ah that must somehow be it.
07:40:48 <markasoftware> threaded and -N1 doesn't use multiple cores
07:41:39 <[exa]> that's expected, it's bound to 1 one. But afaik it's already using slightly different RTS from non-threaded, so it might be nice to check how much that matters
07:44:49 <markasoftware> seems about the same speed with and without -threaded
07:45:20 <markasoftware> it does take a couple seconds before it really starts using the cpu so i bet the GC is it
07:47:12 <markasoftware> yep, sure enough if I use -g1 to disable the parallel gc it only uses one core
07:47:24 <[exa]> ok that sounds reasonable
07:47:41 <[exa]> esp with the pause -- it takes some IO waiting time to get the data that could be GC'd
07:48:09 <[exa]> btw at this point you might consider avoiding the GC altogether and just mmap the file
07:48:15 <[exa]> which costs nothing
07:48:47 <[exa]> and you basically get a ByteString with all differences hidden by implementation
07:50:44 <markasoftware> true
07:50:54 lortabac joins (~lortabac@2a01:e0a:541:b8f0:c45:1b19:a42f:d5f4)
07:51:33 <markasoftware> this is probably an indicator that my whole program is doing too much gc
07:51:37 <markasoftware> since it wasn't just during the initial file read
07:51:41 <markasoftware> so i'll look into reducing that
07:51:46 <markasoftware> thanks [exa] and c_wraith!
07:51:50 <c_wraith> you're welcome
07:52:52 <[exa]> markasoftware: tbh if you're parsing a string this huge into some miniature pieces, I'd say a bit of overhead is expected (and 1 second-ish is still pretty good)
07:53:43 × caryhartline quits (~caryhartl@2600:1700:2d0:8d30:4ce2:f176:39d6:bafd) (Quit: caryhartline)
07:54:36 <[exa]> one thing you can do is to avoid unnecessary reallocation of the strings (BS does that kinda automatically but always better check), avoiding plain old String like hell, and preferably trying some kind of stream processing (so that you don't need to allocate the whole structure at one point of time, making GC go crazy)
07:59:19 fserucas joins (~fserucas@50.4.115.89.rev.vodafone.pt)
08:00:41 hsw_ joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
08:00:49 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0123.hinet-ip6.hinet.net) (Quit: Leaving)
08:00:58 × hsw_ quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection)
08:01:09 hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
08:01:45 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
08:04:26 takuan joins (~takuan@178-116-218-225.access.telenet.be)
08:04:55 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
08:07:55 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:08:28 × igghibu quits (~igghibu@178.249.211.100) (Quit: igghibu)
08:13:45 zeenk joins (~zeenk@2a02:2f04:a110:ac00::7fe)
08:14:45 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
08:20:30 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
08:25:54 Feuermagier joins (~Feuermagi@user/feuermagier)
08:34:12 × kuttenbrunzer quits (~kuttenbru@2a02:8108:8b80:1d48:b5b5:bddb:aaec:741) (Quit: Leaving)
08:34:56 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 246 seconds)
08:41:07 nschoe joins (~q@141.101.51.197)
08:41:51 × mud quits (~mud@user/kadoban) (Quit: quit)
08:43:55 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
08:49:46 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net)
08:49:55 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 252 seconds)
08:49:55 mud joins (~mud@user/kadoban)
08:50:36 boxscape_ joins (~boxscape_@213.52.37.155)
08:51:53 acidjnk joins (~acidjnk@p200300d6e7137a131414127c3bff1106.dip0.t-ipconnect.de)
08:52:01 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
08:57:40 × shriekingnoise quits (~shrieking@186.137.175.87) (Quit: Quit)
09:02:57 <Inst__> hmmm
09:03:10 <Inst__> i'm bored and writing a chapter for my Haskell book that'll never be published
09:03:16 <Inst__> how bad is this?
09:03:17 Inst__ is now known as Inst
09:03:46 <Inst> I start with IO, introducing an "IO type" instead of the IO monad, and only introduce functional programming with fizzBuzz
09:04:28 mei joins (~mei@user/mei)
09:07:06 avicenzi joins (~avicenzi@193.86.92.180)
09:07:08 <[exa]> Inst: writing stuff down is not bad, at the absolute bare minimum you will make a nice picture of the situation and learn that it doesn't need to be written down again
09:07:52 <Inst> TBH, after having skimmed and read so many Haskell textbooks, I think there is a space for what I'm writing
09:08:50 <Inst> hello world to introduce people to haskell syntax and layout rules, a greeter program to introduce the concept of IO "type", then a fizzBuzz written like 5 times to teach the notion of functional programming, and the architecture of having pure-impure separation
09:09:19 <Inst> then datatypes, monads introduced via typeclass mechanisms
09:09:47 <Inst> i think it's great in parts, because for quite a few problems, i've written more in comments than in actual text for the chapter
09:09:48 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
09:10:01 <Inst> and every program, so far, has been presented in at least 3 ways
09:10:33 <Inst> refactoring fizzbuzz toward the traverse take cycle solution
09:14:19 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
09:15:38 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
09:20:34 × zer0bitz quits (~zer0bitz@196.244.192.58) (Read error: Connection reset by peer)
09:21:48 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 268 seconds)
09:23:20 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
09:24:50 zer0bitz joins (~zer0bitz@196.244.192.58)
09:32:02 freeside joins (~mengwong@103.252.202.159)
09:32:03 × acidjnk quits (~acidjnk@p200300d6e7137a131414127c3bff1106.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
09:32:46 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f0c4:47d2:c747:8246) (Remote host closed the connection)
09:36:29 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
09:38:22 thongpv87 joins (~thongpv87@2001:ee0:54ae:c1f0:dd4b:ad67:e33a:aacd)
09:40:38 × thongpv quits (~thongpv87@2402:9d80:3b5:d7b1:8b6f:d6d2:c847:4f3) (Read error: Connection reset by peer)
09:40:50 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
09:41:17 chele joins (~chele@user/chele)
09:42:04 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
09:45:10 acidjnk joins (~acidjnk@p200300d6e7137a137027572e00aa8f47.dip0.t-ipconnect.de)
09:45:35 thongpv joins (~thongpv87@14.246.240.163)
09:46:47 × thongpv87 quits (~thongpv87@2001:ee0:54ae:c1f0:dd4b:ad67:e33a:aacd) (Ping timeout: 252 seconds)
09:50:44 zer0bitz_ joins (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi)
09:53:59 × zer0bitz quits (~zer0bitz@196.244.192.58) (Ping timeout: 246 seconds)
10:00:17 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
10:03:05 nut joins (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
10:14:41 × panovia quits (~user@user/siracusa) (Quit: Bye!)
10:16:06 cheater_ joins (~Username@user/cheater)
10:16:45 × zer0bitz_ quits (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi) ()
10:19:33 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
10:19:41 cheater_ is now known as cheater
10:20:43 × califax quits (~califax@user/califx) (Remote host closed the connection)
10:22:53 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
10:23:33 califax joins (~califax@user/califx)
10:27:29 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
10:33:16 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:f0c4:47d2:c747:8246)
10:36:11 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
10:36:31 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
10:37:05 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
10:37:40 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:f0c4:47d2:c747:8246) (Ping timeout: 252 seconds)
10:38:40 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
10:40:42 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
10:41:51 × thongpv quits (~thongpv87@14.246.240.163) (Ping timeout: 256 seconds)
10:42:10 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Changing host)
10:42:10 troydm joins (~troydm@user/troydm)
10:42:27 pyrex_ joins (~pyrex@2601:645:8781:1c90:5c90:3e18:3b4f:64f1)
10:44:42 thongpv joins (~thongpv87@2402:9d80:3b5:d7b1:5f13:eb94:818a:a1cc)
10:46:43 × pyrex quits (~pyrex@user/pyrex) (Ping timeout: 260 seconds)
10:48:17 notzmv joins (~zmv@user/notzmv)
10:50:20 tvandinther joins (~tvandinth@2404:4408:872e:6000:a872:ee05:5174:f12a)
10:50:41 beteigeuze joins (~Thunderbi@bl14-81-220.dsl.telepac.pt)
10:54:39 × tvandinther quits (~tvandinth@2404:4408:872e:6000:a872:ee05:5174:f12a) (Ping timeout: 260 seconds)
10:56:12 tvandinther joins (~tvandinth@2404:4408:872e:6000:a872:ee05:5174:f12a)
10:56:35 zer0bitz joins (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi)
10:57:40 Guest9918 joins (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
10:57:44 azimut joins (~azimut@gateway/tor-sasl/azimut)
10:58:37 × boxscape_ quits (~boxscape_@213.52.37.155) (Ping timeout: 252 seconds)
10:58:50 <tvandinther> What's the general opinion on the Enum typeclass? It feels like a departure from using the type-system. I suppose it could be for interfacing a sum-type with external systems?
10:59:01 __monty__ joins (~toonn@user/toonn)
10:59:41 <Inst> https://pastebin.com/6hQ78LC4 if you want to look at my toilet, this is partial
11:02:19 × nabaiste^ quits (~nabaiste@76.145.185.103) (Ping timeout: 268 seconds)
11:03:51 × zer0bitz quits (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi) (Read error: Connection reset by peer)
11:04:37 <mauke> > ['A' .. 'Z'] -- good for enumerating things
11:04:39 <lambdabot> "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
11:05:08 zer0bitz joins (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi)
11:06:24 <mauke> > [minBound .. maxBound] :: [Bool]
11:06:26 <lambdabot> [False,True]
11:06:28 NiceBird joins (~NiceBird@176.88.100.183)
11:06:43 <tvandinther> Is that range syntax sugar for EnumFromTo
11:08:46 <tvandinther> I also noticed that toEnum is a partial function. Is there a reason other than legacy that it doesn't return a Maybe?
11:09:43 × elkcl quits (~elkcl@broadband-188-255-19-11.ip.moscow.rt.ru) (Remote host closed the connection)
11:13:22 <chreekat> Why does it feel like a departure from the type system?
11:13:59 <chreekat> > (toEnum 3) :: Bool
11:14:00 <lambdabot> *Exception: Prelude.Enum.Bool.toEnum: bad argument
11:14:11 <chreekat> You're right about that though
11:14:55 elkcl joins (~elkcl@broadband-188-255-19-11.ip.moscow.rt.ru)
11:16:31 <tvandinther> The haskell type system gives us the ability to statically check a program but when we use a typeclass which implements partial functions we lose some guarantees.
11:19:13 <tvandinther> I'm curious as to whether there are legitimate use cases for it besides de/serialisation. Also I wonder if the combination of Ord and Bounded can describe the ability to range across values. Perhaps I'm missing some cases though.
11:22:19 <chreekat> I use it for enumeration. :P Like for creating Arbitrary instances
11:26:57 <tvandinther> Oh I see. I thought that all algebraic data types could have their instances derived so you wouldn't need to define them.
11:29:10 mmhat joins (~mmh@p200300f1c7235bd5ee086bfffe095315.dip0.t-ipconnect.de)
11:29:21 × mmhat quits (~mmh@p200300f1c7235bd5ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
11:32:01 <chreekat> It was an example
11:32:36 × califax quits (~califax@user/califx) (Remote host closed the connection)
11:33:08 califax joins (~califax@user/califx)
11:34:08 <chreekat> With Generics I suppose you'd never need Enum. But then you have Generics
11:34:17 <mauke> automatic deriving only works for a small builtin set of classes
11:34:27 <chreekat> Same goes for TH
11:35:02 <[Leary]> tvandinther: The primary purpose of `Enum` is to support [a ..]/[a, b ..]/[a .. c]/[a, b .. c] list enumeration syntax, with `succ` and `pred` as a bonus on the side. `toEnum` and `fromEnum` can be considered shared implementation details of the aforementioned; you should just pretend they don't exist.
11:36:06 <mauke> unless you need ord/chr but can't be bothered to import Data.Char
11:36:39 × tvandinther quits (~tvandinth@2404:4408:872e:6000:a872:ee05:5174:f12a) (Ping timeout: 260 seconds)
11:40:28 × Teacup quits (~teacup@user/teacup) (Quit: Teacup)
11:41:55 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
11:43:19 × cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds)
11:43:53 tvandinther joins (~tvandinth@2404:4408:872e:6000:a872:ee05:5174:f12a)
11:45:19 cheater joins (~Username@user/cheater)
11:45:49 <tvandinther> Fair enough. I suppose a linter can pick up on partial functions anyway should someone try to use them elsewhere in the codebase.
11:46:28 × yaroot quits (~yaroot@p2790051-ipngn7801souka.saitama.ocn.ne.jp) (Remote host closed the connection)
11:46:36 Teacup joins (~teacup@user/teacup)
11:47:08 × Teacup quits (~teacup@user/teacup) (Remote host closed the connection)
11:47:08 yaroot joins (~yaroot@p2790051-ipngn7801souka.saitama.ocn.ne.jp)
11:47:34 Teacup joins (~teacup@user/teacup)
11:48:16 × Teacup quits (~teacup@user/teacup) (Read error: Connection reset by peer)
11:48:22 CiaoSen joins (~Jura@p200300c9572e35002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
11:48:41 Teacup joins (~teacup@user/teacup)
11:49:22 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
11:50:40 × tvandinther quits (~tvandinth@2404:4408:872e:6000:a872:ee05:5174:f12a) (Ping timeout: 260 seconds)
11:56:52 tvandinther joins (~tvandinth@2404:4408:872e:6000:a872:ee05:5174:f12a)
11:57:22 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
11:58:44 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
11:59:24 n0den1te joins (~n0den1te@223.178.87.4)
12:01:18 × tvandinther quits (~tvandinth@2404:4408:872e:6000:a872:ee05:5174:f12a) (Ping timeout: 255 seconds)
12:02:54 × phma quits (~phma@host-67-44-208-6.hnremote.net) (Read error: Connection reset by peer)
12:03:08 <merijn> The enum class is half decent, half awful
12:03:35 <merijn> like the from/to Enum conversion is dreadful, the implicit assumption that every value is mapped to a single incrementing Int is also awful
12:04:13 <merijn> enumFrom/enumFromTo/enumFromThen/enumFromThenTo are all pretty decent interfaces, but the implementation nonsense...yikes
12:04:17 phma joins (~phma@host-67-44-208-58.hnremote.net)
12:04:30 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
12:11:40 titibandit joins (~titibandi@sunp.ient.rwth-aachen.de)
12:12:24 <freeside> question ... I am in the market for a typeclass which takes the aggregate of a collection. For example, where lists of Nums are concerned, I want Sums and Products. I know this dichotomy already exists for Semigroup; is there a particular typeclass that helps me extract [1,2,3] = 6?
12:12:55 <Rembane> freeside: Why doesn't Sum and mconcat work for you?
12:13:09 <jackdk> Or more generally, Sum and Foldable
12:13:48 <merijn> :t fold Sum
12:13:49 <lambdabot> (Foldable ((->) a), Num a) => Sum a
12:13:56 <byorgey> > foldMap Sum [1,2,3]
12:13:58 <lambdabot> Sum {getSum = 6}
12:14:04 <merijn> oh, right foldMap is what I want
12:14:32 <merijn> (well, foldMap' now that it exists!)
12:14:41 <byorgey> oooh, nice
12:14:47 <freeside> context: I'm trying to implement the business concept of "pro rata" application of a function over a list of numbers, but i want to generalize so it'll work on things like Trees, not just lists
12:15:37 × Guest9918 quits (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 252 seconds)
12:15:43 <byorgey> what is the "pro rata" application of a function?
12:16:24 <Rembane> If I guess out loud, it sounds a bit like a scan
12:17:55 <freeside> for example, if there are 100 Zurks available for distribution to { Alice:5, Bob: 3, Carol:2 }, then Alice would get 50, Bob would get 30, and Carol would get 20
12:18:52 <freeside> so, most basically, (* 100) . (/ sum abc) <$> abc
12:19:51 tremon joins (~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl)
12:21:40 <freeside> yeah, Sum. I'll go think about that Sum more.
12:21:44 <freeside> thank you all
12:23:04 × finsternis quits (~X@23.226.237.192) (Read error: Connection reset by peer)
12:25:15 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
12:28:47 thibaut joins (7efad7d72e@jabberfr.org)
12:29:53 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 268 seconds)
12:31:30 × titibandit quits (~titibandi@sunp.ient.rwth-aachen.de) (Quit: Leaving.)
12:31:40 thibaut is now known as titibandit
12:32:36 titibandit2 joins (~titibandi@sunp.ient.rwth-aachen.de)
12:34:14 <freeside> now reading https://blog.plover.com/prog/haskell/numbers.html to figure out how to constrain my `a` so I can / it
12:34:33 <freeside> i think I need not just Num a but Fractional a
12:36:42 <Rembane> freeside: The simplest way to handle that is to write your own `divMyStuff` function so you don't need a whole `Num` implementation and `Fractional` implementation.
12:36:57 <ncf> :t sum
12:36:59 <lambdabot> (Foldable t, Num a) => t a -> a
12:39:00 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
12:40:17 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 246 seconds)
12:43:40 <freeside> i've got `prorate f xs = f . (/ sum xs) <$> xs`, and for that to work, i've typed it as `(Fractional a, Functor f, Foldable f) => (a -> a) -> f a -> f a`
12:46:52 xff0x joins (~xff0x@p3326132-ipngn2103sapodori.hokkaido.ocn.ne.jp)
12:51:03 Guest75 joins (~Guest75@pd95f6c86.dip0.t-ipconnect.de)
12:51:59 <Guest75> Hello all! :) Can you help me with some benchmarking questio for my hobby project? I am writing a chess hobby project where I have an algorithm that sometimes calls stockfish (chess solver) and some heuristic that hopefully minimizes the amount of calls to stockfish (as this is the costliest part of my algorithm). As I change the heuristic function
12:52:00 <Guest75> and add things like a cache, I would like to not only observer the amount of speed up I hopefully achieve, but also concretely the amount of solver call reduction I achieved.
12:52:00 <Guest75> Is there a way to do this? (My ugly workaround so far would be to simply log the amount of solver calls and use them afterwards, but I would really like to use the benchmark-comparing features of tasty-bench to also see how the calling of external solver calls progresses.)
12:52:01 <Guest75> Thank you for your time!
12:58:27 cfricke joins (~cfricke@user/cfricke)
12:58:35 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
12:59:25 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
13:00:06 Guest7590 joins (~Guest75@pd95f6c86.dip0.t-ipconnect.de)
13:01:03 × Guest7590 quits (~Guest75@pd95f6c86.dip0.t-ipconnect.de) (Client Quit)
13:01:08 × Guest75 quits (~Guest75@pd95f6c86.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
13:02:17 ph88 joins (~ph88@ip5f5af18e.dynamic.kabel-deutschland.de)
13:02:47 <ph88> does someone know of a haskell webserver framework (view, routing etc) that also has websocket build in ?
13:03:40 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7.1)
13:03:44 <freeside> https://hackage.haskell.org/package/servant-websockets
13:03:50 cfricke joins (~cfricke@user/cfricke)
13:05:52 <ph88> thanks @freeside
13:07:54 × potash quits (~foghorn@user/foghorn) (Read error: Connection reset by peer)
13:10:58 potash joins (~foghorn@user/foghorn)
13:11:36 Guest75 joins (~Guest75@p200300c8cf01aa92dd5467930ce044c7.dip0.t-ipconnect.de)
13:12:47 elevenkb joins (~elevenkb@105.226.98.103)
13:13:56 Guest8366 joins (uid583562@id-583562.hampstead.irccloud.com)
13:18:03 × Guest75 quits (~Guest75@p200300c8cf01aa92dd5467930ce044c7.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
13:26:17 <eldritchcookie[4> how do i quickcheck a monadic value?
13:27:51 Guest75 joins (~Guest75@p200300c8cf01aa923c9d9e449c9a7fb0.dip0.t-ipconnect.de)
13:28:27 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
13:28:33 <eldritchcookie[4> is there a combinator for monadic values?
13:29:07 <int-e> @check return 1 === Just 1
13:29:08 <lambdabot> +++ OK, passed 100 tests.
13:29:45 <int-e> I think "monadic" is way too general, you'll have to work with a concrete monad.
13:30:32 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
13:34:29 <Guest75> (Rephrasing my question, I think it was way to wordy for IRC) I want to benchmark a functions output (rather than its execution time), is there a way to do that with tasty-bench or criterion? (Context: the function is an optimizing function that makes calls to external solvers. With the function result, I also return the total number of calls to
13:34:30 <Guest75> external solvers - this is the metric I want to reduce)
13:41:43 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 260 seconds)
13:44:09 <dgpratt[m]> supposing someone wanted to play around with dependent types in Haskell, is the singletons package still the state of the art for that, or am I looking at outdated materials?
13:44:11 malc joins (~malc@109-252-130-144.dynamic.spd-mgts.ru)
13:48:06 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7.1)
13:48:16 cfricke joins (~cfricke@user/cfricke)
13:49:33 <geekosaur> singletons is still it
13:49:42 <geekosaur> dependent haskell is still in development
13:50:02 <geekosaur> you'd probably be better off looking at idris, tbh
13:50:12 kuttenbrunzer joins (~kuttenbru@2a02:8108:8b80:1d48:290b:c79d:b803:7d5c)
13:51:38 <dgpratt[m]> ok, thanks geekosaur
13:52:03 epolanski joins (uid312403@id-312403.helmsley.irccloud.com)
13:55:16 igghibu joins (~igghibu@91.193.5.38)
13:56:30 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
13:59:26 shriekingnoise joins (~shrieking@186.137.175.87)
14:03:05 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
14:09:37 × titibandit2 quits (~titibandi@sunp.ient.rwth-aachen.de) (Quit: Leaving.)
14:11:03 thegeekinside joins (~thegeekin@189.217.82.244)
14:14:11 × thegeekinside quits (~thegeekin@189.217.82.244) (Read error: Connection reset by peer)
14:14:17 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net)
14:14:21 thegeekinside joins (~thegeekin@189.217.82.244)
14:22:40 ubert joins (~Thunderbi@p200300ecdf264ec8801a36d606119386.dip0.t-ipconnect.de)
14:25:12 × AlexZenon quits (~alzenon@178.34.150.228) (Ping timeout: 268 seconds)
14:25:12 × Alex_test quits (~al_test@178.34.150.228) (Ping timeout: 268 seconds)
14:25:41 × igghibu quits (~igghibu@91.193.5.38) (Quit: igghibu)
14:26:35 igghibu joins (~igghibu@91.193.5.38)
14:28:59 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds)
14:29:18 Alex_test joins (~al_test@178.34.150.228)
14:29:39 AlexZenon joins (~alzenon@178.34.150.228)
14:31:00 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
14:32:58 cheater_ joins (~Username@user/cheater)
14:34:10 × Guest75 quits (~Guest75@p200300c8cf01aa923c9d9e449c9a7fb0.dip0.t-ipconnect.de) (Quit: Client closed)
14:34:32 × cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds)
14:34:32 cheater_ is now known as cheater
14:35:21 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
14:36:26 <jean-paul[m]> I am trying to update and improve the test suite for the fec module. The tests seem to fail but the cabal test does not report them as failing. The setup is pretty rudementary - https://github.com/exarkun/zfec/blob/haskell-binding-parameter-validation-fixes/haskell/test/FECTest.hs#L56-L60 - but I don't see why a failing test wouldn't cause main to throw, causing the test process to exit with a non-zero code, causing cabal test to
14:36:26 <jean-paul[m]> consider it failed. Anyone know?
14:37:20 <jean-paul[m]> At first I thought mapM_ would throw away the failures but the test functions only return m () anyway so then I thought failures must be IO exceptions which will propagate anyway. Wrong?
14:39:51 raym joins (~ray@user/raym)
14:41:55 mc47 joins (~mc47@xmonad/TheMC47)
14:45:32 <jean-paul[m]> Now I think perhaps quickCheck just doesn't fail when one of the properties fails.
14:47:38 × igghibu quits (~igghibu@91.193.5.38) (Quit: igghibu)
14:47:45 <jean-paul[m]> Mmm okay, yes, docs say it just prints to stdout, and there's other runners if you want the result as a value.
14:48:08 igghibu joins (~igghibu@91.193.5.38)
14:49:35 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
14:50:07 ddellacosta joins (~ddellacos@143.244.47.85)
14:54:07 <jean-paul[m]> hspec to the rescue
14:55:14 <Hecate> hello hello
14:55:19 <Hecate> salut jean-paul[m]
14:59:54 mikail joins (~mikail@2a02:c7c:6117:e00:a46b:e624:7683:e24e)
15:00:38 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7.1)
15:02:22 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
15:10:22 × trev quits (~trev@user/trev) (Remote host closed the connection)
15:20:36 Guest9918 joins (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
15:25:16 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
15:25:38 × Guest9918 quits (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds)
15:26:17 <freeside> so, i went and upgraded my thang to operate inside StateT Foo IO Bar, and now I need to fix a scanl that previously called a Bar -> [a] -> Bar
15:27:12 ephaptic joins (~mbomba@user/ephaptic)
15:27:56 <freeside> is there a way to tweak my scanl without going to the trouble of importing Control.Scanl and upgrading other things to be in ScanM?
15:28:38 <freeside> my thang is now Bar -> [a] -> StateT Foo IO Bar, so presumably the scanl needs to now operate monadically
15:28:58 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
15:30:10 <Rembane> freeside: `pure . scanl` could work.
15:31:37 <geekosaur> would need to see actual code, but it might be as simple as doing it inside of a `let` instead of with `<-`
15:34:48 freeside tries every possible combination
15:35:06 igghibu_ joins (~igghibu@91.193.5.27)
15:37:01 <freeside> i have pushed actual code: https://github.com/smucclaw/complaw/blob/primary/doc/ex-de-20221220/detax/src/Lib.hs#L281
15:37:12 × mikail quits (~mikail@2a02:c7c:6117:e00:a46b:e624:7683:e24e) (Quit: Leaving)
15:37:56 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
15:38:00 × igghibu quits (~igghibu@91.193.5.38) (Ping timeout: 272 seconds)
15:40:22 <ncf> :t scanlM
15:40:24 <lambdabot> error:
15:40:24 <lambdabot> • Variable not in scope: scanlM
15:40:24 <lambdabot> • Perhaps you meant one of these:
15:40:34 <freeside> :t scanM
15:40:35 <lambdabot> error:
15:40:35 <lambdabot> • Variable not in scope: scanM
15:40:35 <lambdabot> • Perhaps you meant one of these:
15:41:06 <freeside> it's from https://hackage.haskell.org/package/foldl-1.4.13/docs/Control-Scanl.html
15:41:57 <freeside> i suppose i could use `impurely` but am i barking up the wrong tree with this approach?
15:41:59 <ncf> if you don't want to use foldl you can just define scanlM yourself, it's short enough
15:42:17 × razetime quits (~Thunderbi@49.207.222.244) (Remote host closed the connection)
15:42:22 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
15:43:11 Sgeo joins (~Sgeo@user/sgeo)
15:43:33 mikoto-chan joins (~mikoto-ch@2001:999:700:e088:9765:525:76a5:7915)
15:44:57 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:c45:1b19:a42f:d5f4) (Quit: WeeChat 2.8)
15:47:15 × acidjnk quits (~acidjnk@p200300d6e7137a137027572e00aa8f47.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
15:49:34 × n0den1te quits (~n0den1te@223.178.87.4) (Quit: leaving)
15:49:47 × mikoto-chan quits (~mikoto-ch@2001:999:700:e088:9765:525:76a5:7915) (Ping timeout: 252 seconds)
15:49:59 × ephaptic quits (~mbomba@user/ephaptic) (Quit: WeeChat 3.7.1)
15:50:12 mbomba joins (~mbomba@cpe1c9eccdb0b75-cm1c9eccdb0b73.cpe.net.cable.rogers.com)
15:50:33 <freeside> i try
15:50:43 × mbomba quits (~mbomba@cpe1c9eccdb0b75-cm1c9eccdb0b73.cpe.net.cable.rogers.com) (Client Quit)
15:50:52 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
15:51:54 ub joins (~Thunderbi@p200300ecdf264ec8f81900d1912e72e5.dip0.t-ipconnect.de)
15:52:23 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
15:53:15 × elevenkb quits (~elevenkb@105.226.98.103) (Quit: Client closed)
15:54:13 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
15:55:04 × xff0x quits (~xff0x@p3326132-ipngn2103sapodori.hokkaido.ocn.ne.jp) (Ping timeout: 252 seconds)
15:55:57 ephaptic joins (~mbomba@user/ephaptic)
15:56:01 ulvarrefr joins (~user@188.124.56.153)
15:56:26 acidjnk joins (~acidjnk@p200300d6e7137a34b1a3218fa39d995d.dip0.t-ipconnect.de)
16:00:01 <freeside> how does this look for a scanlM? https://github.com/smucclaw/complaw/blob/primary/doc/ex-de-20221220/detax/src/Lib.hs#L285-L290
16:00:10 × kadoban quits (~kadoban@user/kadoban) (Quit: You have been kicked for being idle)
16:01:10 <freeside> https://hackage.haskell.org/package/base-4.17.0.0/docs/src/GHC.List.html#scanl has the comment "This peculiar arrangement is necessary to prevent scanl being rewritten in its own right-hand side." but it's not immediately obvious to me what that means
16:01:11 kadoban joins (~kadoban@user/kadoban)
16:02:57 <c_wraith> freeside: it's about an interaction with the RULES pragmas after it
16:03:16 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
16:03:21 <c_wraith> nothing to worry about if you aren't writing RULES pragmas
16:03:45 × ephaptic quits (~mbomba@user/ephaptic) (Quit: WeeChat 3.7.1)
16:04:57 <geekosaur> if you scroll down a bit you'll find the Note [scanl rewrite rules], which explains what's going on. but if you aren't making rewrite rules for your `scanlM`, you don't need to care
16:05:18 <geekosaur> if you are, you probably want to read it over and see if you need to do something similar
16:05:40 <freeside> i'm not. there is more cleverness there than i am equipped to handle at the moment.
16:06:49 <geekosaur> notr really; it's just ensuring scanl itself doesn't get rewritten, by renaming its guts
16:07:02 <c_wraith> Those rules are for foldr/build fusion anyway, and scanlM can't use that because the (>>=) interleaving isn't compatible with it
16:07:09 elevenkb joins (~elevenkb@105.226.98.103)
16:07:27 <freeside> wahey, it works
16:09:02 <[exa]> freeside: btw consider having the arguments strict (it's a left scan anyway). With IO actions this probably wouldn't hurt because stuff will get forced on the go, but with e.g. State stuff might start getting inconveniently inconvenient.
16:09:45 freeside searches for the right place to insert a !
16:10:02 <[exa]> look at scanl' in the other file you linked
16:11:16 <[exa]> oh wait
16:11:36 <[exa]> it's a scan, not a fold. Likely no need to worry then. :D
16:11:39 <c_wraith> The equivalent here would be changing the last line to t `seq` return (t:ts)
16:12:11 <c_wraith> err. No. It would be doing that in the previous line.
16:12:35 <c_wraith> But it matters a lot less with than with scanl because this will probably fall apart on large lists anyway
16:12:54 <c_wraith> it's already not capable of streaming results like scanl in general
16:14:04 <c_wraith> this one is tough to do a more detailed strictness analysis on, because it depends on (>>=)
16:14:55 × avicenzi quits (~avicenzi@193.86.92.180) (Ping timeout: 260 seconds)
16:15:04 <c_wraith> I think there is *a* case where forcing t before the recursive call can matter.
16:16:10 <c_wraith> yeah, if the monad's (>>=) is sufficiently lazy, like Identity, it can matter if you're skipping elements of the result list.
16:16:28 <[exa]> c_wraith: e.g. for Identity this becomes a normal scanl, but I'd say weird stuff may start happening with say State.Lazy
16:16:49 <c_wraith> [exa]: that stuff is the responsibility of (>>=) to handle.
16:16:59 <freeside> i am very much hoping to engage in weird activity in the near future, but not today. I mean LogicT.
16:17:16 <[exa]> LogicT <3
16:17:44 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
16:17:45 <[exa]> anyway yeah a bit of `seq` never hurt nobody, right?
16:18:07 <c_wraith> definitely false. I've had people think they were optimizing libraries I was using and break them.
16:18:14 <c_wraith> like... bytestring
16:18:48 [exa] was joking, yeah
16:19:33 <c_wraith> still, given the recursive structure, I think scanlM' (forcing t before the recursive call), is almost always more appropriate.
16:20:24 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
16:30:50 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
16:31:50 <Inst> is there any use to making your own typeclasses in Haskell?
16:31:54 <Inst> from what i've been told, it's rare
16:32:28 <c_wraith> It's not rare, but it's not something you should assume you always need to do
16:32:37 <Inst> I need a good project that non-trivially introduces typeclasses at the newbie level
16:32:54 <c_wraith> A pretty-printer is a common example
16:33:01 <Inst> i'm working on a journal writer and reader (with optional encryption) to motivate introducing datatypes, record syntax, etc
16:33:12 <c_wraith> It needs to vary behavior with all kinds of input types
16:33:17 <dgpratt[m]> @pl f xs yx = g (zip xs ys)
16:33:17 <lambdabot> f = const . g . flip zip ys
16:33:17 <eldritchcookie[4> pick a library and write arbitrary instances for quickcheck
16:33:18 <Inst> pretty-printer is just a pretty name for formatter, no?
16:33:34 <dgpratt[m]> s/yx/ys/
16:33:36 <c_wraith> it implies that the formatting is for fixed-width text display, sure
16:33:48 <Inst> i've never done a pretty printer before
16:33:57 <dgpratt[m]> @pl f xs ys = g (zip xs ys)
16:33:57 <lambdabot> f = (g .) . zip
16:34:08 <Inst> it's in Thinking Functionally with Haskell, I probably have the maturity at this point to be able to use it without too much trouble
16:34:13 <[exa]> Inst: formatting may mean anything, pretty means humans will additionally like it
16:34:23 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
16:36:59 <Inst> bleh, it's too early to hook up https libraries
16:37:04 <[exa]> Inst: have a look at package `pretty`, I find it super lovely
16:38:47 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9552:b93e:dc75:3765)
16:39:59 <Inst> hmmm
16:40:09 <Inst> looking at the concept, i.e, formatting data's show instances, etc
16:40:37 <Inst> instancing i have a fairly good idea of "cool" code that uses it, like, a fib calculator that exploits the Num typeclass to get easy fast exponentiation
16:41:09 <Inst> thanks for the suggestion
16:41:19 <Inst> do you have any idea of data that someone might want to pretty print?
16:42:24 <geekosaur> pretty much anything, which is where instancing comes in: anyone can implement a Pretty instance for their type
16:43:23 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9552:b93e:dc75:3765) (Ping timeout: 256 seconds)
16:46:45 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
16:48:53 kmein joins (~weechat@user/kmein)
16:54:48 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
16:54:55 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
16:56:26 × kuttenbrunzer quits (~kuttenbru@2a02:8108:8b80:1d48:290b:c79d:b803:7d5c) (Quit: Leaving)
16:56:44 econo joins (uid147250@user/econo)
17:01:31 elkcl_ joins (~elkcl@broadband-188-255-19-11.ip.moscow.rt.ru)
17:02:23 × elkcl quits (~elkcl@broadband-188-255-19-11.ip.moscow.rt.ru) (Ping timeout: 252 seconds)
17:02:23 elkcl_ is now known as elkcl
17:03:13 × thongpv quits (~thongpv87@2402:9d80:3b5:d7b1:5f13:eb94:818a:a1cc) (Read error: Connection reset by peer)
17:03:14 thongpv87 joins (~thongpv87@2402:9d80:3ba:1697:bf26:42c7:945d:2a94)
17:06:02 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 272 seconds)
17:08:39 nabaiste^ joins (~nabaiste@76.145.190.81)
17:10:23 × nabaiste^ quits (~nabaiste@76.145.190.81) (Remote host closed the connection)
17:10:53 × ub quits (~Thunderbi@p200300ecdf264ec8f81900d1912e72e5.dip0.t-ipconnect.de) (Quit: ub)
17:11:37 shapr joins (~user@68.54.166.125)
17:14:38 × elevenkb quits (~elevenkb@105.226.98.103) (Quit: Client closed)
17:18:05 × igghibu_ quits (~igghibu@91.193.5.27) (Quit: igghibu_)
17:23:38 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
17:24:23 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
17:25:22 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9552:b93e:dc75:3765)
17:25:39 <monochrom> The pretty-printing papers implicitly specify automatic deciding e.g. whether "foo; bar; baz;" is short enough to be one line or long enough to be 3 lines.
17:27:42 <monochrom> which exceeds what's commonly known as code formatting because coding style guides do not offer a choice.
17:28:43 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
17:28:53 Guest5476 joins (~m-mzmz6l@vmi833741.contaboserver.net)
17:30:00 cfricke joins (~cfricke@user/cfricke)
17:30:11 <monochrom> AFAIK only two communities known of said pretty-printing notions, haskell's and sml's.
17:30:20 <monochrom> s/known/know/
17:30:23 × thegeekinside quits (~thegeekin@189.217.82.244) (Read error: Connection reset by peer)
17:34:17 × pyrex_ quits (~pyrex@2601:645:8781:1c90:5c90:3e18:3b4f:64f1) ()
17:34:33 pyrex joins (~pyrex@user/pyrex)
17:34:48 jakalx joins (~jakalx@base.jakalx.net)
17:41:21 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
17:43:26 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:44:39 <jean-paul[m]> Why does `B.take 10 . mconcat . repeat $ ("Hello world" :: Data.ByteString.ByteString)` take forever to evaluate?
17:45:20 wootehfoot joins (~wootehfoo@user/wootehfoot)
17:45:34 <shapr> I think it tries to concat an infinite bytestring
17:46:40 <Guest5476> try to use Data.ByteString.Lazy
17:48:09 motherfsck joins (~motherfsc@user/motherfsck)
17:48:48 <jean-paul[m]> I expected that even with a strict ByteString, the result of mconcat would be lazy. But maybe it can't be because there's no such thing as part of a strict ByteString (and that's what you'd have to be working on for mconcat's result to be lazy?)
17:53:21 <Guest5476> Yes, strict bs is a single memory span full of bytes, so you should allocate it before getting access, when lazy bs is a rope of 32kb(iirc) strict ones
17:53:54 <Guest5476> - pointer to the single span
17:54:38 <jean-paul[m]> `BL.take 10 . BL.cycle $ ("Hello world" :: BL.ByteString)` indeed is fine.
17:58:50 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
18:00:21 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
18:00:31 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9552:b93e:dc75:3765) (Remote host closed the connection)
18:06:05 × nschoe quits (~q@141.101.51.197) (Quit: Switching off)
18:07:07 nasrudin__ joins (~nasrudin_@wsip-174-64-239-10.sd.sd.cox.net)
18:15:19 × remedan quits (~remedan@octo.cafe) (Ping timeout: 252 seconds)
18:15:47 × CiaoSen quits (~Jura@p200300c9572e35002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
18:19:27 remedan joins (~remedan@octo.cafe)
18:27:41 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
18:31:27 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
18:33:51 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
18:34:08 thegeekinside joins (~thegeekin@189.217.82.244)
18:39:12 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:43:09 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
18:46:38 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
18:52:26 unit73e joins (~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36)
18:53:55 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
18:54:58 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
18:57:47 × mbuf quits (~Shakthi@49.204.120.17) (Quit: Leaving)
19:00:39 jakalx parts (~jakalx@base.jakalx.net) (Disconnected: Replaced by new connection)
19:00:39 jakalx joins (~jakalx@base.jakalx.net)
19:04:12 × NiceBird quits (~NiceBird@176.88.100.183) (Quit: Leaving)
19:05:07 NiceBird joins (~NiceBird@176.88.100.183)
19:11:07 fizbin joins (~fizbin@user/fizbin)
19:13:14 × thegeekinside quits (~thegeekin@189.217.82.244) (Remote host closed the connection)
19:14:28 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
19:17:24 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
19:21:51 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
19:22:17 ephaptic joins (~ephaptic@user/ephaptic)
19:28:42 gmg joins (~user@user/gehmehgeh)
19:29:18 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
19:30:30 <eldritchcookie[4> how can i save my spliced code from template haskell?
19:32:14 <geekosaur> ghc -ddump-splices
19:33:01 <eldritchcookie[4> it produces code with wrong prrag
19:33:02 <eldritchcookie[4> pragmas
19:33:47 × zeenk quits (~zeenk@2a02:2f04:a110:ac00::7fe) (Ping timeout: 264 seconds)
19:34:03 <geekosaur> it should produce code with no pragmas, since it's just the inserted code and not a full program
19:34:27 <geekosaur> it can't be used by itself
19:37:22 <eldritchcookie[4> instance declared with instanceWithOverlapD are produced with related pragmas
19:37:53 <eldritchcookie[4> but wrongly
19:38:36 <geekosaur> that sounds like a ghc bug, then
19:39:27 zeenk joins (~zeenk@2a02:2f04:a110:ac00::7fe)
19:40:14 <eldritchcookie[4> they work normally just the code dumped with -ddump-splices is wrong as it misses the { of a OVERLAPS pragma
19:40:26 <eldritchcookie[4> the problem is probably on the pretty printer
19:41:20 caryhartline joins (~caryhartl@2600:1700:2d0:8d30:4c56:2515:e4a9:736c)
19:41:53 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
19:43:26 <eldritchcookie[4> actually brb will test if the pretty printer works normally
19:44:05 × zeenk quits (~zeenk@2a02:2f04:a110:ac00::7fe) (Ping timeout: 246 seconds)
19:45:28 × freeside quits (~mengwong@103.252.202.159) (Ping timeout: 252 seconds)
19:45:51 × beefbambi quits (~beefbambi@2401:4900:230d:f57c:538c:d7cc:50c0:e377) (Read error: Connection reset by peer)
19:47:49 beefbambi joins (~beefbambi@183.82.24.253)
19:47:58 thegeekinside joins (~thegeekin@189.217.82.244)
19:51:54 × beefbambi quits (~beefbambi@183.82.24.253) (Read error: Connection reset by peer)
19:53:15 freeside joins (~mengwong@103.252.202.159)
19:53:41 nattiestnate joins (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f)
19:53:58 × nattiestnate quits (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) (Client Quit)
19:54:29 nattiestnate joins (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f)
19:57:26 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:57:37 × freeside quits (~mengwong@103.252.202.159) (Ping timeout: 252 seconds)
19:57:50 × nattiestnate quits (~nate@2001:448a:20a3:c2e5:71b9:a710:2866:667f) (Client Quit)
20:02:56 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
20:03:23 × nasrudin__ quits (~nasrudin_@wsip-174-64-239-10.sd.sd.cox.net) (Ping timeout: 248 seconds)
20:04:33 jmdaemon joins (~jmdaemon@user/jmdaemon)
20:09:18 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.7.1)
20:10:13 freeside joins (~mengwong@103.252.202.159)
20:16:25 × mechap quits (~mechap@user/mechap) (Ping timeout: 260 seconds)
20:18:10 × talismanick quits (~talismani@76.133.152.122) (Ping timeout: 260 seconds)
20:18:14 mechap joins (~mechap@user/mechap)
20:18:53 <jean-paul[m]> Sometimes my HSpec / QuickCheck test suite fails like this:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/4a9fe3954041fdd2f00af9259aef0a17b2ac4597>)
20:19:54 beefbambi joins (~beefbambi@183.82.24.253)
20:24:40 Kaipei joins (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net)
20:25:31 jinsun joins (~jinsun@user/jinsun)
20:28:25 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-159-86.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 252 seconds)
20:29:33 panovia joins (~user@user/siracusa)
20:30:34 × ephaptic quits (~ephaptic@user/ephaptic) (Quit: WeeChat 3.7.1)
20:32:56 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 255 seconds)
20:33:05 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
20:33:23 × mechap quits (~mechap@user/mechap) (Ping timeout: 255 seconds)
20:34:49 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
20:34:56 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
20:35:32 mechap joins (~mechap@user/mechap)
20:41:22 × beefbambi quits (~beefbambi@183.82.24.253) (Read error: Connection reset by peer)
20:41:29 beefbambi joins (~beefbambi@183.82.24.253)
20:51:13 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7.1)
20:52:43 finsternis joins (~X@23.226.237.192)
20:55:35 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
20:55:57 × chexum_ quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
20:56:15 chexum joins (~quassel@gateway/tor-sasl/chexum)
20:57:56 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9552:b93e:dc75:3765)
20:58:15 igghibu joins (~igghibu@91.193.5.27)
21:03:40 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:9552:b93e:dc75:3765) (Ping timeout: 260 seconds)
21:06:55 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds)
21:07:44 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
21:13:20 × cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds)
21:14:08 cheater joins (~Username@user/cheater)
21:28:55 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
21:32:33 × ph88 quits (~ph88@ip5f5af18e.dynamic.kabel-deutschland.de) (Quit: Leaving)
21:36:56 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:9552:b93e:dc75:3765)
21:39:50 × NiceBird quits (~NiceBird@176.88.100.183) (Quit: Leaving)
21:39:56 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1)
21:47:45 <lyxia> jean-paul[m]: I don't know if this is related but I've had weird errors with test frameworks because of <<loop>>
21:53:12 nasrudin__ joins (~nasrudin_@174.78.11.32)
21:54:54 × igghibu quits (~igghibu@91.193.5.27) (Quit: igghibu)
21:57:53 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
22:01:17 × fserucas quits (~fserucas@50.4.115.89.rev.vodafone.pt) (Ping timeout: 256 seconds)
22:01:25 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
22:01:32 × nut quits (~nut@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds)
22:04:05 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
22:04:39 Guest9918 joins (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
22:04:42 jakalx joins (~jakalx@base.jakalx.net)
22:16:54 × freeside quits (~mengwong@103.252.202.159) (Ping timeout: 255 seconds)
22:20:00 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
22:21:32 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
22:30:16 freeside joins (~mengwong@103.252.202.159)
22:30:50 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
22:31:19 Guest8032 joins (~Guest8032@cpe-70-115-146-139.austin.res.rr.com)
22:32:39 × Guest8032 quits (~Guest8032@cpe-70-115-146-139.austin.res.rr.com) (Read error: Connection reset by peer)
22:37:12 talismanick joins (~talismani@2601:644:9380:5c00::43de)
22:41:32 × cheater quits (~Username@user/cheater) (Read error: Connection reset by peer)
22:41:39 × talismanick quits (~talismani@2601:644:9380:5c00::43de) (Ping timeout: 255 seconds)
22:42:17 cheater joins (~Username@user/cheater)
22:44:21 × Guest9918 quits (~finn@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 3.5)
22:44:52 × fizbin quits (~fizbin@user/fizbin) (Ping timeout: 272 seconds)
22:45:04 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
22:51:21 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer)
22:52:56 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
22:55:44 ubert1 joins (~Thunderbi@p200300ecdf264e0ec4eebb70ae26d25f.dip0.t-ipconnect.de)
22:55:49 × ubert quits (~Thunderbi@p200300ecdf264ec8801a36d606119386.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
22:55:49 ubert1 is now known as ubert
22:57:14 × nasrudin__ quits (~nasrudin_@174.78.11.32) (Ping timeout: 252 seconds)
22:57:29 nasrudin__ joins (~nasrudin_@174.78.11.32)
22:58:29 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:03:43 × sayola quits (~sayola@dslb-002-201-085-035.002.201.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
23:05:46 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 272 seconds)
23:05:49 × djanatyn quits (~djanatyn@vps-7f49a6b0.vps.ovh.ca) (Ping timeout: 260 seconds)
23:10:38 Guest84 joins (~Guest84@apn-31-2-59-127.dynamic.gprs.plus.pl)
23:11:38 × Guest84 quits (~Guest84@apn-31-2-59-127.dynamic.gprs.plus.pl) (Quit: Client closed)
23:13:58 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
23:13:59 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
23:16:05 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
23:20:57 biberu joins (~biberu@user/biberu)
23:25:04 × nasrudin__ quits (~nasrudin_@174.78.11.32) (Ping timeout: 260 seconds)
23:25:22 nasrudin__ joins (~nasrudin_@81.171.62.7)
23:26:40 × mizlan quits (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
23:27:24 mizlan joins (~mizlan@c-67-169-7-31.hsd1.ca.comcast.net)
23:29:16 Tuplanolla joins (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
23:37:32 × cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds)
23:38:08 × Maeda quits (~Maeda@91-161-10-149.subs.proxad.net) (Ping timeout: 260 seconds)
23:39:50 Maeda joins (~Maeda@91-161-10-149.subs.proxad.net)
23:44:07 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
23:46:03 <jean-paul[m]> The test suite is for bindings to a C library and I discovered that the C library segfaults on some inputs, so this is how a segfault in the test process is presented. :/
23:48:07 <monochrom> Alternatively, QuickCheck had pure Haskell in mind, didn't know you would stress-test C code.
23:48:57 cheater joins (~Username@user/cheater)
23:51:40 × epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
23:52:53 <maerwald[m]> jean-paul.: use try
23:53:03 romesrf joins (~romes@192.22.63.94.rev.vodafone.pt)
23:56:04 titibandit parts (7efad7d72e@jabberfr.org) (Disconnected: Hibernating too long)
23:56:50 <jean-paul[m]> maerwald: To catch a SIGSEGV? :)
23:57:01 <jean-paul[m]> Cool beans
23:57:25 × nasrudin__ quits (~nasrudin_@81.171.62.7) (Ping timeout: 252 seconds)
23:58:31 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)

All times are in UTC on 2023-01-04.