Home liberachat/#haskell: Logs Calendar

Logs on 2021-08-17 (liberachat/#haskell)

00:03:34 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
00:05:53 × dunj3 quits (~dunj3@2001:16b8:30ec:f400:346e:802e:3718:9489) (Remote host closed the connection)
00:07:17 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer)
00:07:40 Gurkenglas joins (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
00:12:54 <Axman6> hmm, years ago I contributed to a library thst used FFTs to resize images, can't remember what it's called though
00:12:57 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 245 seconds)
00:17:11 justsomeguy joins (~justsomeg@user/justsomeguy)
00:20:06 lavaman joins (~lavaman@98.38.249.169)
00:20:57 ec joins (~ec@gateway/tor-sasl/ec)
00:24:10 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
00:27:58 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
00:30:32 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:35:00 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
00:46:27 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
00:49:40 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
00:50:21 × boxscape_ quits (~boxscape_@p4ff0b769.dip0.t-ipconnect.de) (Quit: Connection closed)
00:51:02 boxscape_ joins (~boxscape_@p4ff0b769.dip0.t-ipconnect.de)
00:57:37 ec joins (~ec@gateway/tor-sasl/ec)
01:01:42 × lbseale quits (~lbseale@user/ep1ctetus) (Ping timeout: 245 seconds)
01:04:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
01:04:40 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 240 seconds)
01:06:07 geekosaur joins (~geekosaur@xmonad/geekosaur)
01:09:48 lavaman joins (~lavaman@98.38.249.169)
01:10:40 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 240 seconds)
01:11:20 geekosaur joins (~geekosaur@xmonad/geekosaur)
01:14:12 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
01:17:04 × gambpang quits (~ian@207.181.230.156) (Ping timeout: 258 seconds)
01:19:44 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 268 seconds)
01:24:56 geekosaur joins (~geekosaur@xmonad/geekosaur)
01:24:56 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
01:25:10 × aman quits (~aman@user/aman) (Ping timeout: 240 seconds)
01:25:25 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
01:26:57 aman joins (~aman@user/aman)
01:30:53 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
01:34:37 aaron[m]1 joins (~aaronvarg@2001:470:69fc:105::db5e)
01:34:51 aaron[m]1 parts (~aaronvarg@2001:470:69fc:105::db5e) ()
01:36:26 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
01:39:03 Sgeo joins (~Sgeo@user/sgeo)
01:39:59 aarvar joins (~aaron@2601:602:a080:fa0:67c3:55ee:5aa4:c0b6)
01:41:22 × michalz quits (~michalz@185.246.204.62) (Ping timeout: 245 seconds)
01:44:21 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:46:40 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 240 seconds)
01:49:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
01:50:06 × xff0x quits (~xff0x@2001:1a81:5326:b600:845d:acc9:3c7f:1b89) (Ping timeout: 272 seconds)
01:51:10 × pbrisbin quits (~patrick@pool-108-16-214-93.phlapa.fios.verizon.net) (Ping timeout: 240 seconds)
01:51:10 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
01:51:20 xff0x joins (~xff0x@2001:1a81:535d:2700:c2ae:145d:39da:4349)
01:52:50 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
01:53:02 geekosaur joins (~geekosaur@xmonad/geekosaur)
01:54:07 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
01:59:17 ec joins (~ec@gateway/tor-sasl/ec)
02:08:11 × jess quits (~jess@libera/staff/jess) (Quit: jumping servers)
02:08:19 fernand joins (~fernand@179.156.35.4)
02:09:05 jess joins (~jess@libera/staff/jess)
02:09:54 <fernand> Hi everyone. I'm not able to download Haskell 8.2.2 for MacOS. The Link is returning 404 not found https://www.haskell.org/platform/download/8.2.2/Haskell%20Platform%208.2.2%20Full%2064bit-signed.pkg Is there a mirror somewhere else?
02:11:25 <Axman6> why do you want such an ancient GHC version?
02:12:17 <fernand> Axman6 for studying purposes
02:12:19 <Axman6> the haskell platform is no longer the recommended way to get set up, as https://www.haskell.org/platform/ suggests
02:12:39 × td_ quits (~td@muedsl-82-207-238-122.citykom.de) (Ping timeout: 258 seconds)
02:12:47 slack1256 joins (~slack1256@181.203.12.14)
02:14:30 td_ joins (~td@muedsl-82-207-238-133.citykom.de)
02:14:30 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
02:14:53 <fernand> I see. Thanks
02:14:54 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
02:15:18 <Axman6> fernand: do you specifically need an old GHC? There is a very good chance it will not run on newer macOS versions, Apple have a habbit of breaking things in the build tools that cause old compiters to stop working
02:16:47 × boxscape_ quits (~boxscape_@p4ff0b769.dip0.t-ipconnect.de) (Quit: Connection closed)
02:16:47 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
02:17:00 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
02:17:33 <Axman6> just for reference, GHC 8.2.2 was released 2017-11-21
02:19:06 <sm> a quick test with stack (`stack setup ghc-8.2.2; stack --resolver ghc-8.2.2 exec -- ghc --version`) looks alright
02:19:58 <Axman6> on the latest macOS? Ususally the problems arise when trying to actually compile things
02:21:20 <monochrom> To be more sure, you need to try to compile a file that uses CPP.
02:21:22 <fernand> I am following an old book and they use this version for their code examples. Just wanted to avoid debugging time while learning.
02:21:46 <Axman6> Which book? Any introductory book should hopefully be ok with newer GHCs
02:21:50 <sm> on latest mac software and hardware, `stack --resolver lts-11.22 build` in `shelltestrunner` works (about 30 deps)
02:21:55 <monochrom> That's reasoning. But it cuts both ways.
02:21:57 <sm> this may be more than enough for fernand
02:21:58 <monochrom> err
02:22:03 <monochrom> That's reasonable. But it cuts both ways.
02:22:11 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:22:11 FinnElija is now known as Guest4965
02:22:11 × Guest4965 quits (~finn_elij@user/finn-elija/x-0085643) (Killed (silver.libera.chat (Nickname regained by services)))
02:22:11 finn_elija is now known as FinnElija
02:23:05 <monochrom> debugging old compiler that doesn't work on new system vs debugging old textbook that doesn't work on new compiler >:)
02:23:40 <fernand> Thanks for all the suggestions. I guess I'll try the newer ghc and see how it goes.
02:23:47 <monochrom> I would say flip a coin. Later, if something goes wrong, blame the coin.
02:23:58 <sm> and `stack --resolver lts-11.22 exec -- bash` gets you a nice ghc 8.2.2 in $PATH
02:24:35 <Axman6> fernand: if you install ghcup, you'll be able to install and switch between a few different GHCs very easily using `ghcup tui`
02:25:06 Codaraxis__ joins (~Codaraxis@user/codaraxis)
02:25:18 × haykam quits (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
02:25:32 haykam joins (~haykam@static.100.2.21.65.clients.your-server.de)
02:26:33 <monochrom> To a large extent, we in this channel has enough collective memory about code migration to new compilers and standard libraries, so that if you encounter code that doesn't compile and you suspect it's an incompatibility, just give us a URL to a paste, we can quickly identify the fix.
02:26:49 × aegon quits (~mike@174.127.249.180) (Remote host closed the connection)
02:28:11 <fernand> Thank you Axman6, sm and monochrom !
02:28:29 <Axman6> Stick around and ask lots of questions
02:28:40 × Codaraxis_ quits (~Codaraxis@user/codaraxis) (Ping timeout: 240 seconds)
02:28:46 × alx741 quits (~alx741@181.196.68.125) (Quit: alx741)
02:30:18 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
02:33:51 adam1 joins (~adam@2001-b011-4007-0e06-019e-67d3-c5f0-42de.dynamic-ip6.hinet.net)
02:41:51 ec joins (~ec@gateway/tor-sasl/ec)
02:43:27 _crazygirl joins (~hola@213.94.21.181)
02:46:10 × Codaraxis__ quits (~Codaraxis@user/codaraxis) (Ping timeout: 240 seconds)
02:48:24 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2)
02:50:06 × _crazygirl quits (~hola@213.94.21.181) (K-Lined)
02:57:39 × haykam quits (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
02:57:52 haykam joins (~haykam@static.100.2.21.65.clients.your-server.de)
03:12:39 Ananta-shesha joins (~pjetcetal@2.95.210.196)
03:17:19 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
03:17:32 × slack1256 quits (~slack1256@181.203.12.14) (Ping timeout: 245 seconds)
03:19:51 notzmv joins (~zmv@user/notzmv)
03:20:21 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:21:03 × jess quits (~jess@libera/staff/jess) ()
03:21:04 falafel_ joins (~falafel@2601:483:4e00:2b20:cdf:9399:6ec8:368a)
03:21:17 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 245 seconds)
03:21:52 <Cajun> is hoogle down? 3: (https://hoogle.haskell.org/) is giving me a 502 bad gateway
03:23:21 <sm> yup
03:24:03 <sm> there's another one at https://www.stackage.org
03:24:12 zebrag joins (~chris@user/zebrag)
03:25:56 gambpang joins (~ian@207.181.230.156)
03:34:28 ec joins (~ec@gateway/tor-sasl/ec)
03:38:51 × mnr quits (~mnrmnaugh@68.162.206.56) (Remote host closed the connection)
03:38:58 Erutuon joins (~Erutuon@user/erutuon)
03:39:02 fvr joins (uid503686@id-503686.highgate.irccloud.com)
03:40:15 mnrmnaugh joins (~mnrmnaugh@68.162.206.56)
03:43:54 <dsal> @hoogle MonadIO m => m a -> IO a
03:43:55 <lambdabot> Generic.Data.Internal.Utils coerce' :: Coercible (f x) (g x) => f x -> g x
03:43:55 <lambdabot> Basement.Monad unsafePrimToIO :: PrimMonad prim => prim a -> IO a
03:43:55 <lambdabot> Control.Effect.Lift sendM :: (Has (Lift n) sig m, Functor n) => n a -> m a
03:45:14 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:48:16 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
03:49:04 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:54:25 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
03:58:54 falafel_ is now known as falafel
04:00:12 <Axman6> dsal: that type doesn't really make sense, at least not without a type class specifically for doing that; how should foo (bar :: StateT Int IO a) run?
04:00:43 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
04:03:11 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
04:04:02 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:04:21 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:06:50 × paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
04:08:54 paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
04:12:05 ec joins (~ec@gateway/tor-sasl/ec)
04:14:25 × fernand quits (~fernand@179.156.35.4) (Ping timeout: 248 seconds)
04:19:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
04:22:50 <dsal> Yeah, that was weird. I was confused by the results. heh. But @hoogle works
04:24:56 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
04:25:20 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:27:22 Square is now known as Squarism
04:28:06 Squarism is now known as Squar
04:28:37 Squar is now known as uSaqr
04:29:40 × falafel quits (~falafel@2601:483:4e00:2b20:cdf:9399:6ec8:368a) (Ping timeout: 240 seconds)
04:30:27 nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
04:31:40 falafel joins (~falafel@2601:483:4e00:2b20:cdf:9399:6ec8:368a)
04:34:37 × nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
04:35:10 × adam1 quits (~adam@2001-b011-4007-0e06-019e-67d3-c5f0-42de.dynamic-ip6.hinet.net) (Ping timeout: 240 seconds)
04:44:07 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
04:46:57 × gambpang quits (~ian@207.181.230.156) (Ping timeout: 248 seconds)
04:47:10 michalz joins (~michalz@185.246.204.62)
04:47:21 gambpang joins (~ian@207.181.230.156)
04:48:07 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
05:01:43 ec joins (~ec@gateway/tor-sasl/ec)
05:13:27 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
05:21:27 × MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
05:22:15 adam1 joins (~adam@2001-b011-4007-2539-8c74-0d75-7c9a-5c73.dynamic-ip6.hinet.net)
05:26:33 vysn joins (~vysn@user/vysn)
05:29:04 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
05:29:14 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:32:10 × falafel quits (~falafel@2601:483:4e00:2b20:cdf:9399:6ec8:368a) (Ping timeout: 240 seconds)
05:34:12 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
05:37:03 Obo joins (~roberto@78.77.166.185)
05:37:46 × juhp quits (~juhp@128.106.188.220) (Quit: juhp)
05:40:02 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:40:25 × erisco quits (~erisco@d24-57-249-233.home.cgocable.net) (Ping timeout: 258 seconds)
05:40:32 × oldsk00l quits (~znc@ec2-3-123-2-100.eu-central-1.compute.amazonaws.com) (Remote host closed the connection)
05:40:32 erisco_ joins (~erisco@d24-57-249-233.home.cgocable.net)
05:40:38 ec joins (~ec@gateway/tor-sasl/ec)
05:40:56 erisco_ is now known as erisco
05:41:53 juhp joins (~juhp@128.106.188.220)
05:42:55 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
05:45:02 × erisco quits (~erisco@d24-57-249-233.home.cgocable.net) (Ping timeout: 245 seconds)
05:45:31 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
05:46:01 erisco joins (~erisco@d24-57-249-233.home.cgocable.net)
05:48:53 × xaltsc quits (~xaltsc@user/xaltsc) (Ping timeout: 252 seconds)
05:48:53 × AkechiShiro quits (~licht@user/akechishiro) (Ping timeout: 252 seconds)
05:50:03 AkechiShiro joins (~licht@user/akechishiro)
05:50:10 xaltsc joins (~xaltsc@user/xaltsc)
05:53:03 × kadobanana quits (~mud@user/kadoban) (Ping timeout: 276 seconds)
05:58:28 × gambpang quits (~ian@207.181.230.156) (Ping timeout: 268 seconds)
05:58:52 gambpang joins (~ian@207.181.230.156)
06:01:06 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
06:02:55 slavaqq joins (~slavaqq@sdmail.sdserver.cz)
06:10:36 trcc joins (~trcc@users-1190.st.net.au.dk)
06:11:13 × stefan-_ quits (~cri@42dots.de) (Ping timeout: 248 seconds)
06:13:15 × cjb quits (~cjb@user/cjb) (Ping timeout: 256 seconds)
06:14:40 × adam1 quits (~adam@2001-b011-4007-2539-8c74-0d75-7c9a-5c73.dynamic-ip6.hinet.net) (Ping timeout: 240 seconds)
06:15:50 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:16:01 stefan-_ joins (~cri@42dots.de)
06:18:13 ec joins (~ec@gateway/tor-sasl/ec)
06:18:37 × fvr quits (uid503686@id-503686.highgate.irccloud.com) (Quit: Connection closed for inactivity)
06:24:33 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
06:25:36 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
06:26:25 × gambpang quits (~ian@207.181.230.156) (Ping timeout: 258 seconds)
06:26:49 gambpang joins (~ian@207.181.230.156)
06:27:48 fvr joins (uid503686@id-503686.highgate.irccloud.com)
06:36:37 lavaman joins (~lavaman@98.38.249.169)
06:41:37 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
06:44:30 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
06:46:00 adam1 joins (~adam@2001-b011-4007-0471-9e76-5e8f-4259-c5af.dynamic-ip6.hinet.net)
06:50:02 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
06:50:29 spruit11_ joins (~quassel@2a02:a467:ccd6:1:2d8e:31e9:d2b5:c97d)
06:52:19 × slavaqq quits (~slavaqq@sdmail.sdserver.cz) (Ping timeout: 246 seconds)
06:54:10 × spruit11 quits (~quassel@2a02:a467:ccd6:1:cc2:35ba:cbc2:b281) (Ping timeout: 272 seconds)
06:55:57 ec joins (~ec@gateway/tor-sasl/ec)
06:58:49 ubert joins (~Thunderbi@91.141.62.226.wireless.dyn.drei.com)
07:02:50 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
07:03:05 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
07:05:23 fendor joins (~fendor@178.165.173.29.wireless.dyn.drei.com)
07:05:27 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
07:05:31 Lord_of_Life_ is now known as Lord_of_Life
07:10:08 acidjnk_new3 joins (~acidjnk@p5487d90a.dip0.t-ipconnect.de)
07:10:40 AsyLayd21 joins (~ilanekle@95.70.207.57)
07:11:23 × AsyLayd21 quits (~ilanekle@95.70.207.57) (Client Quit)
07:19:41 nrl^ joins (~nrl@209.65.131.194)
07:20:23 keutoi joins (~keutoi@157.48.244.189)
07:26:10 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
07:27:15 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
07:28:09 Erutuon joins (~Erutuon@user/erutuon)
07:28:17 mei joins (~mei@user/mei)
07:28:29 × gambpang quits (~ian@207.181.230.156) (Ping timeout: 268 seconds)
07:30:29 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
07:32:35 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
07:33:27 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
07:35:30 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
07:35:39 aforemny_ is now known as aforemny
07:38:20 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:39:35 cheater joins (~Username@user/cheater)
07:40:30 × Guest327 quits (~chris@81.96.113.213) (Remote host closed the connection)
07:40:49 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
07:43:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
07:45:14 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:45:27 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
07:46:31 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:47:42 ec joins (~ec@gateway/tor-sasl/ec)
07:47:46 Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk)
07:48:21 mc47 joins (~mc47@xmonad/TheMC47)
07:52:32 × hendursaga quits (~weechat@user/hendursaga) (Quit: hendursaga)
07:53:00 hendursaga joins (~weechat@user/hendursaga)
07:55:18 uSaqr is now known as Suqare
07:56:10 × aarvar quits (~aaron@2601:602:a080:fa0:67c3:55ee:5aa4:c0b6) (Ping timeout: 240 seconds)
07:56:55 × FragByte quits (~christian@user/fragbyte) (Quit: Quit)
07:57:51 Suqare is now known as Sqaure
07:58:53 burnsidesLlama joins (~burnsides@dhcp168-025.wadham.ox.ac.uk)
08:00:06 FragByte joins (~christian@user/fragbyte)
08:01:14 cfricke joins (~cfricke@user/cfricke)
08:02:56 drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
08:03:10 × p3n_ quits (~p3n@217.198.124.246) (Quit: ZNC 1.8.2 - https://znc.in)
08:03:39 p3n joins (~p3n@217.198.124.246)
08:04:57 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:06:01 hendursa1 joins (~weechat@user/hendursaga)
08:08:12 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 244 seconds)
08:08:57 ubert1 joins (~Thunderbi@91.141.62.226.wireless.dyn.drei.com)
08:11:22 burnside_ joins (~burnsides@dhcp168-025.wadham.ox.ac.uk)
08:11:22 × burnsidesLlama quits (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Read error: Connection reset by peer)
08:16:58 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
08:16:59 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
08:18:02 geekosaur joins (~geekosaur@xmonad/geekosaur)
08:19:39 <Drew[m]1> Is there a package for providing type level information about what platform a package has been compiled on?
08:20:27 × Obo quits (~roberto@78.77.166.185) (Ping timeout: 245 seconds)
08:22:40 <[exa]> Drew[m]1: why type-level?
08:24:06 <maerwald> shouldn't that be trivial with CPP and type level literals?
08:24:09 <[exa]> (anyway, some compiler data are usually available through preprocessor macros)
08:24:38 Gurkenglas joins (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
08:24:40 cas68 joins (~cas@60-242-74-252.tpgi.com.au)
08:26:35 tfeb joins (~tfb@88.98.95.237)
08:27:37 × acowley quits (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
08:29:55 acowley joins (~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
08:30:51 <Drew[m]1> <[exa]> "Drew: why type-level?" <- I was thinking about it's possible to avoid CPP by having cabal conditionally import some version of a module depending on platform, and it occurred to me that at the bare minimum all you'd really need to expose is the platform information at the type level and the platform generic code could use that to decide which other parts of the program to use via type classes
08:31:23 × ubert1 quits (~Thunderbi@91.141.62.226.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
08:32:38 <Drew[m]1> I suppose I might be comfortable using CPP to aquire such information in one package so that a client package wouldn't have, but avoiding CPP while varying behavior between platforms is the goal
08:32:39 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:33:10 <Drew[m]1> Whether it's reasonable to do this is something I couldn't possibly comment on
08:34:18 ec joins (~ec@gateway/tor-sasl/ec)
08:34:37 <Drew[m]1> It needs to be type-level so that like CPP everything is decided at compile-time
08:37:46 lavaman joins (~lavaman@98.38.249.169)
08:40:02 timCF joins (~timCF@200-149-20-81.sta.estpak.ee)
08:41:56 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
08:42:00 dschrempf joins (~dominik@2a01-036d-0118-a2d1-83e4-4c8f-3e62-bedd.pool6.digikabel.hu)
08:42:10 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
08:43:30 <maerwald> I don't think you can do that without CPP or TH
08:48:10 <[exa]> Drew[m]1: in my project I'm specifically doing single modules that have CPP enabled and just expose whatever is needed from CPP into "normal" typed stuff
08:48:31 <Drew[m]1> Well I figure without CPP, to expose the OS and Arch information you'd need a file for every archetecture and a file for every OS.maerwald
08:48:45 <[exa]> (usually version information for printing)
08:48:58 <maerwald> what creates those files?
08:49:30 × tfeb quits (~tfb@88.98.95.237) (Quit: died)
08:49:47 benin036932 joins (~benin@106.198.88.152)
08:50:12 × timCF quits (~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving)
08:51:12 <Drew[m]1> Actually if OS information includes versions you'd be doomed.
08:51:12 <Drew[m]1> It would only work without CPP if you only offer very coarse platform info: coarse enough to make it feasable to make one file for every option
08:52:08 <[exa]> anyway, what would you use it for? deciding on implementation/validity of some code based on platform?
08:53:03 <Drew[m]1> Yes, deciding on implementation based on platform
08:53:21 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 248 seconds)
08:53:49 <[exa]> perhaps having the platform-dependent bits in the separate files would be a kindof isomorphic solution then?
08:55:27 Erutuon joins (~Erutuon@user/erutuon)
08:55:36 × benin036932 quits (~benin@106.198.88.152) (Read error: Connection reset by peer)
08:56:01 themc47 joins (~mc47@xmonad/TheMC47)
08:56:51 benin036932 joins (~benin@106.198.88.152)
08:57:01 ubert1 joins (~Thunderbi@91.141.62.226.wireless.dyn.drei.com)
08:57:20 <[exa]> OTOH I don't see if/how it could be practical (technically, if you're switching platforms, then usually some functionality is missing on some platforms as in "code does not compile at all", and you just want to #ifdef the stuff out instead of hoping that type-level conditions magically do the right thing)
08:57:36 mr-red joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
08:58:10 × mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 240 seconds)
08:58:13 × drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 258 seconds)
08:58:16 <fvr> you maybe able to use a plugin to feed the info into a type level function , the result of which can choose a different instance
09:00:23 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
09:01:49 <Drew[m]1> [exa]: Yeah you're right... whether by CPP or cabal file conditionals that sort of thing still needs to be hidden when compiling on certain platforms
09:03:25 <[exa]> like, not necessarily the case with haskell and I perfectly see your point that it _should_ be possible, but in these cases I prefer to keep stuff as simple as possible
09:04:06 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
09:04:24 <[exa]> esp. given the situation that on 99% platforms you get the configuration input from autoconf as defines, and the redmondish one is better treated as a special case anyway
09:04:43 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:07:07 × dschrempf quits (~dominik@2a01-036d-0118-a2d1-83e4-4c8f-3e62-bedd.pool6.digikabel.hu) (Ping timeout: 245 seconds)
09:08:10 ec joins (~ec@gateway/tor-sasl/ec)
09:09:10 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
09:10:13 × cas68 quits (~cas@60-242-74-252.tpgi.com.au) (Ping timeout: 246 seconds)
09:10:50 __monty__ joins (~toonn@user/toonn)
09:11:50 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
09:16:41 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:21:11 × adam1 quits (~adam@2001-b011-4007-0471-9e76-5e8f-4259-c5af.dynamic-ip6.hinet.net) (Quit: WeeChat 3.2)
09:21:33 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:21:46 obs\ joins (~obscur1ty@156.192.222.172)
09:21:46 × obs\ quits (~obscur1ty@156.192.222.172) (Changing host)
09:21:46 obs\ joins (~obscur1ty@user/obs/x-5924898)
09:23:47 × obscur1ty quits (~obscur1ty@user/obs/x-5924898) (Ping timeout: 245 seconds)
09:24:13 gambpang joins (~ian@207.181.230.156)
09:25:17 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
09:25:21 × obs\ quits (~obscur1ty@user/obs/x-5924898) (Read error: Connection reset by peer)
09:25:28 obs\ joins (~obscur1ty@156.192.180.119)
09:25:28 × obs\ quits (~obscur1ty@156.192.180.119) (Changing host)
09:25:28 obs\ joins (~obscur1ty@user/obs/x-5924898)
09:25:46 hendursaga joins (~weechat@user/hendursaga)
09:31:52 trevor joins (uid389732@id-389732.tooting.irccloud.com)
09:33:52 idf parts (~idf@198.23.223.146) (Using Circe, the loveliest of all IRC clients)
09:37:39 × benin036932 quits (~benin@106.198.88.152) (Quit: Ping timeout (120 seconds))
09:38:47 × oxide quits (~lambda@user/oxide) (Ping timeout: 245 seconds)
09:40:50 oxide joins (~lambda@user/oxide)
09:42:31 idf joins (~idf@198.23.223.146)
09:43:12 jtomas joins (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net)
09:43:16 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
09:45:58 <kuribas> which logic language would you recommend? I'd like one which has a good IDE (or emacs), and (optional) automated proofs. Export to haskell or other FP languages would be nice.
09:46:39 <kuribas> I looked at idris, but proving in idris feels like a secondary feature.
09:47:11 <opqdonut> logic language usually refers to logic programming a la prolog. are you looking for a proof system instead?
09:47:28 <opqdonut> aka proof assistant
09:47:39 <opqdonut> coq is fairly popular and has a nice emacs mode
09:48:05 <opqdonut> isabelle is another notable one, but I don't have experience with it
09:49:53 aarvar joins (~aaron@2601:602:a080:fa0:417e:358b:8f59:9c9)
09:50:19 <oak-> Haskell also has the Liquid Haskell
09:50:21 chomwitt joins (~chomwitt@2a02:587:dc0c:e200:12c3:7bff:fe6d:d374)
09:52:57 raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:53:24 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
09:58:21 × gambpang quits (~ian@207.181.230.156) (Ping timeout: 268 seconds)
09:59:09 benin036932 joins (~benin@106.198.88.152)
10:08:18 <kuribas> opqdonut: right, proof language :)
10:08:39 <kuribas> oak-: what I don't like about liquid haskell is that it doesn't encode bounds.
10:08:49 <kuribas> For example, it treats Int as an integer, which it isn't!
10:08:59 dschrempf joins (~dominik@2a01-036d-0118-a2d1-6956-051d-7043-4e79.pool6.digikabel.hu)
10:09:10 <kuribas> opqdonut: and agda or lean?
10:11:00 mousey joins (~skymouse@gateway/tor-sasl/mousey)
10:11:51 ec joins (~ec@gateway/tor-sasl/ec)
10:12:01 <opqdonut> kuribas: agda is definitely more programming-oriented with not that much proof automation
10:12:08 <opqdonut> lean I've heard of but haven't tried
10:13:25 <kuribas> opqdonut: I saw they made a proof of some complicated theorem (which took months). That's quite impressive.
10:13:40 <kuribas> Maybe it's more for proving math, rather than proving programs correct.
10:13:42 <kuribas> ?
10:14:22 <opqdonut> yeah I think isabelle and lean are more in the math camp, coq is kinda in the middle
10:14:41 <opqdonut> you can write some code in coq, prove it correct, and then have coq output haskell code
10:14:57 <opqdonut> haven't done that myself, just worked through some type theory stuff in coq
10:15:12 jakalx joins (~jakalx@base.jakalx.net)
10:15:28 <opqdonut> you'll probably find more advice from somebody more experienced than me, but that's my two cents :)
10:17:16 <kuribas> oh, and there's f star, which exports to ocaml and f#, but not haskell.
10:17:54 × nrl^ quits (~nrl@209.65.131.194) (Remote host closed the connection)
10:23:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
10:25:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:25:05 pbrisbin joins (~patrick@pool-108-16-214-93.phlapa.fios.verizon.net)
10:26:43 <kuribas> opqdonut: agda has this: https://agda.readthedocs.io/en/v2.5.3/tools/auto.html
10:26:52 <kuribas> opqdonut: maybe it's not ver sofisticated?
10:27:42 <opqdonut> yeah that's mostly for single holes in a proof
10:28:42 Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com)
10:29:15 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
10:30:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:30:13 × dschrempf quits (~dominik@2a01-036d-0118-a2d1-6956-051d-7043-4e79.pool6.digikabel.hu) (Ping timeout: 258 seconds)
10:30:52 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:31:29 <kuribas> "Another mechanism for proof automation is proof search action in emacs mode. It enumerates possible proof terms (limited to 5 seconds), and if one of the terms fits the specification, it will be put in the meta variable where the action is invoked. "
10:31:46 <kuribas> https://en.wikipedia.org/wiki/Agda_(programming_language)#Proof_automation
10:35:27 × chomwitt quits (~chomwitt@2a02:587:dc0c:e200:12c3:7bff:fe6d:d374) (Ping timeout: 245 seconds)
10:35:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
10:36:16 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:37:24 × tcard_ quits (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving)
10:40:07 ec joins (~ec@gateway/tor-sasl/ec)
10:43:36 tcard joins (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp)
10:48:47 × azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer)
10:50:09 azeem joins (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it)
10:57:07 dsrt^ joins (~dsrt@209.65.131.194)
10:59:13 × mousey quits (~skymouse@gateway/tor-sasl/mousey) (Ping timeout: 244 seconds)
11:00:12 × burnside_ quits (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Remote host closed the connection)
11:00:57 alx741 joins (~alx741@181.196.68.125)
11:02:24 fhutty14 joins (~fhutty14@c83-252-75-55.bredband.tele2.se)
11:03:21 skykanin joins (~skykanin@115.81-166-221.customer.lyse.net)
11:08:10 × pbrisbin quits (~patrick@pool-108-16-214-93.phlapa.fios.verizon.net) (Ping timeout: 240 seconds)
11:09:25 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.2)
11:12:31 trevor is now known as rovert
11:15:45 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
11:22:10 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds)
11:22:14 cfricke joins (~cfricke@user/cfricke)
11:22:39 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
11:26:32 × oxide quits (~lambda@user/oxide) (Ping timeout: 268 seconds)
11:27:32 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
11:28:14 dschrempf joins (~dominik@2a01-036d-0118-a2d1-e318-72ef-8701-cb8b.pool6.digikabel.hu)
11:29:43 chisui joins (~chisui@200116b864e3ed0025ab38eae95cca2d.dip.versatel-1u1.de)
11:30:53 <chisui> Hey, what is a good current sound library for haskell. There are some listed on the wiki, but the articles where last updated in 2010.
11:31:41 <jophish> previously I've used the sdl audio bindings
11:32:56 ec joins (~ec@gateway/tor-sasl/ec)
11:35:10 × aarvar quits (~aaron@2601:602:a080:fa0:417e:358b:8f59:9c9) (Ping timeout: 240 seconds)
11:36:10 <chisui> jophish: Thanks, do you remember which package exactly you used? There are several on hackage
11:36:21 <hpc> i once used synthesizer-alsa to build up sounds from nothing - it was fun to use but i didn't get very far into it
11:36:36 <jophish> probably https://hackage.haskell.org/package/sdl2-mixer
11:37:26 <jophish> oh, sorry https://hackage.haskell.org/package/sdl2
11:37:30 <jophish> that has SDL.Audio
11:38:28 oxide joins (~lambda@user/oxide)
11:38:35 burnsidesLlama joins (~burnsides@dhcp168-025.wadham.ox.ac.uk)
11:39:53 <jophish> sorry, actually it was the former I think, whatever exports
11:39:53 <jophish> import qualified SDL.Mixer as Mix
11:40:01 <jophish> for some reason I didn't commit a .cabal file
11:44:12 × burnsidesLlama quits (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Ping timeout: 245 seconds)
11:45:02 Obo joins (~roberto@185.76.9.42)
11:46:13 burnsidesLlama joins (~burnsides@dhcp168-025.wadham.ox.ac.uk)
11:46:14 × burnsidesLlama quits (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Remote host closed the connection)
11:46:21 burnsidesLlama joins (~burnsides@dhcp168-025.wadham.ox.ac.uk)
11:49:52 × burnsidesLlama quits (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Remote host closed the connection)
11:50:03 burnsidesLlama joins (~burnsides@dhcp168-025.wadham.ox.ac.uk)
11:50:10 × Cajun quits (~Cajun@user/cajun) (Quit: Client closed)
11:51:14 × fhutty14 quits (~fhutty14@c83-252-75-55.bredband.tele2.se) (Quit: Client closed)
11:53:17 fhutty14 joins (~fhutty14@c83-252-75-55.bredband.tele2.se)
11:53:50 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.2)
11:53:54 <tomsmeding> chisui: playing (possibly generated) sound over a speaker, or reading/writing sound files?
11:54:30 <chisui> tomsmeding: playing generated sound over a speaker.
11:54:47 <tomsmeding> then what jophish said :)
11:54:54 <tomsmeding> (otherwise probably https://hackage.haskell.org/package/hsndfile )
11:55:19 gambpang joins (~ian@207.181.230.156)
11:55:45 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 248 seconds)
11:59:55 × gambpang quits (~ian@207.181.230.156) (Ping timeout: 258 seconds)
12:00:11 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
12:00:19 gambpang joins (~ian@207.181.230.156)
12:03:22 × ubert quits (~Thunderbi@91.141.62.226.wireless.dyn.drei.com) (Ping timeout: 258 seconds)
12:03:23 ubert1 is now known as ubert
12:04:40 × mr-red quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds)
12:10:01 × fhutty14 quits (~fhutty14@c83-252-75-55.bredband.tele2.se) (Quit: Client closed)
12:10:38 <chisui> thanks
12:11:18 ec joins (~ec@gateway/tor-sasl/ec)
12:12:18 ub joins (~Thunderbi@91.141.62.226.wireless.dyn.drei.com)
12:15:45 Guest65 joins (~Guest65@ppp089210060185.access.hol.gr)
12:16:03 × Guest65 quits (~Guest65@ppp089210060185.access.hol.gr) (Client Quit)
12:16:40 × ub quits (~Thunderbi@91.141.62.226.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
12:18:19 × benin036932 quits (~benin@106.198.88.152) (Ping timeout: 258 seconds)
12:20:10 × xff0x quits (~xff0x@2001:1a81:535d:2700:c2ae:145d:39da:4349) (Ping timeout: 240 seconds)
12:21:07 xff0x joins (~xff0x@2001:1a81:535d:2700:6b08:445c:db9b:4d20)
12:22:33 glassy joins (~glassy@90.254.122.50)
12:22:38 ub joins (~Thunderbi@91.141.62.226.wireless.dyn.drei.com)
12:23:30 × glassy quits (~glassy@90.254.122.50) (Changing host)
12:23:30 glassy joins (~glassy@user/glassy)
12:23:32 benin036932 joins (~benin@106.198.88.152)
12:27:53 × trcc quits (~trcc@users-1190.st.net.au.dk) ()
12:30:03 × gambpang quits (~ian@207.181.230.156) (Ping timeout: 268 seconds)
12:30:27 gambpang joins (~ian@207.181.230.156)
12:32:26 fhutty14 joins (~fhutty14@c83-252-75-55.bredband.tele2.se)
12:33:08 × fhutty14 quits (~fhutty14@c83-252-75-55.bredband.tele2.se) (Client Quit)
12:34:11 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:34:18 notzmv joins (~zmv@user/notzmv)
12:38:57 × sleblanc quits (~sleblanc@user/sleblanc) (Ping timeout: 248 seconds)
12:39:33 lavaman joins (~lavaman@98.38.249.169)
12:42:41 × benin036932 quits (~benin@106.198.88.152) (Ping timeout: 248 seconds)
12:43:35 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
12:44:40 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
12:46:02 benin036932 joins (~benin@106.198.88.152)
12:46:21 × Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
12:46:58 pbrisbin joins (~patrick@pool-108-16-214-93.phlapa.fios.verizon.net)
12:47:32 × acidjnk_new3 quits (~acidjnk@p5487d90a.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
12:50:10 shriekingnoise joins (~shrieking@186.137.144.80)
12:51:56 × benin036932 quits (~benin@106.198.88.152) (Read error: Connection reset by peer)
12:52:07 benin036932 joins (~benin@106.198.88.152)
12:54:40 ec joins (~ec@gateway/tor-sasl/ec)
12:56:10 × raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
12:57:29 × benin036932 quits (~benin@106.198.88.152) (Quit: Ping timeout (120 seconds))
12:57:50 benin036932 joins (~benin@106.198.88.152)
12:58:53 × burnsidesLlama quits (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Remote host closed the connection)
12:59:26 burnsidesLlama joins (~burnsides@dhcp168-025.wadham.ox.ac.uk)
13:00:06 × gambpang quits (~ian@207.181.230.156) (Ping timeout: 258 seconds)
13:00:30 gambpang joins (~ian@207.181.230.156)
13:02:10 × xff0x quits (~xff0x@2001:1a81:535d:2700:6b08:445c:db9b:4d20) (Ping timeout: 240 seconds)
13:03:58 × burnsidesLlama quits (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
13:03:58 × ub quits (~Thunderbi@91.141.62.226.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
13:04:42 × ubert quits (~Thunderbi@91.141.62.226.wireless.dyn.drei.com) (Ping timeout: 258 seconds)
13:05:29 chris joins (~chris@81.96.113.213)
13:05:33 chris is now known as Guest320
13:07:02 × benin036932 quits (~benin@106.198.88.152) (Ping timeout: 268 seconds)
13:12:52 xff0x joins (~xff0x@2001:1a81:535d:2700:6b08:445c:db9b:4d20)
13:13:09 mousey joins (~skymouse@gateway/tor-sasl/mousey)
13:13:47 benin036932 joins (~benin@106.198.88.152)
13:17:16 ubert joins (~Thunderbi@91.141.37.36.wireless.dyn.drei.com)
13:18:08 <__monty__> kuribas: Don't expect too much from automated proofs. Afaik Coq is the most advanced constructive logic-based proof assistant in this regard. Proof automation is a lot more useful in the SMT sense.
13:20:52 × dschrempf quits (~dominik@2a01-036d-0118-a2d1-e318-72ef-8701-cb8b.pool6.digikabel.hu) (Quit: WeeChat 3.2)
13:23:38 × ubert quits (~Thunderbi@91.141.37.36.wireless.dyn.drei.com) (Read error: Connection reset by peer)
13:26:16 Sgeo joins (~Sgeo@user/sgeo)
13:27:22 burnsidesLlama joins (~burnsides@client-8-71.eduroam.oxuni.org.uk)
13:29:03 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
13:29:24 <kuribas> __monty__: can't these use SMT solvers?
13:29:35 <kuribas> I remember there was one for Coq
13:30:08 × notzmv quits (~zmv@user/notzmv) (Read error: Connection reset by peer)
13:31:38 <__monty__> No, SMT solvers are way more limited in what they can do.
13:31:48 <__monty__> Which is why they're amenable to automatic proving : )
13:32:25 <__monty__> Model checking is much easier than proof search in an enormous search space.
13:32:26 ubert joins (~Thunderbi@91.141.37.36.wireless.dyn.drei.com)
13:33:46 <merijn> "enormous" is an understatement for "infinite" ;)
13:34:06 × ubert quits (~Thunderbi@91.141.37.36.wireless.dyn.drei.com) (Read error: Connection reset by peer)
13:34:26 ubert joins (~Thunderbi@91.141.37.36.wireless.dyn.drei.com)
13:36:03 <__monty__> I wasn't sure whether constructive maybe implied countable infinity or even less. So I went with the relatively safe "enormous."
13:36:05 × vgtw quits (~vgtw@c-9164205c.07-348-756d651.bbcust.telenor.se) (Quit: ZNC - https://znc.in)
13:36:12 <kuribas> __monty__: https://smtcoq.github.io/
13:37:24 <__monty__> That's pretty cool. The second bullet I figured, but the first one is novel.
13:38:11 <__monty__> Still SMT is a lot less general a method. So really, it depends on what you're interested in.
13:39:57 ec joins (~ec@gateway/tor-sasl/ec)
13:40:55 <kuribas> well, a lot of what is tedious in proving programs correct can be solved with SMT.
13:41:43 jess joins (~jess@libera/staff/jess)
13:42:59 chomwitt joins (~chomwitt@2a02:587:dc0c:e200:12c3:7bff:fe6d:d374)
13:43:02 × azeem quits (~azeem@dynamic-adsl-94-34-33-6.clienti.tiscali.it) (Read error: Connection reset by peer)
13:44:02 × ubert quits (~Thunderbi@91.141.37.36.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
13:44:07 <__monty__> Sure, model checking is super useful and practical.
13:44:51 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
13:45:36 raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
13:46:46 amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
13:49:50 ubert joins (~Thunderbi@91.141.37.36.wireless.dyn.drei.com)
13:50:23 × Reyu[M] quits (~reyureyuz@matrix.reyuzenfold.com) (Remote host closed the connection)
13:51:03 Reyu[M] joins (~reyureyuz@matrix.reyuzenfold.com)
13:53:05 ub joins (~Thunderbi@91.141.37.36.wireless.dyn.drei.com)
13:54:09 × ubert quits (~Thunderbi@91.141.37.36.wireless.dyn.drei.com) (Ping timeout: 248 seconds)
13:57:32 × ub quits (~Thunderbi@91.141.37.36.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
13:58:58 slack1256 joins (~slack1256@191.126.43.49)
13:59:07 <merijn> __monty__: Countable infinity is still infinite
13:59:35 <merijn> And even in a constructive setting you have at least countable infinity
13:59:50 <__monty__> merijn: Do note the "even less" though. All this proof assistant stuff is from way back when for me.
14:00:15 <merijn> __monty__: I'd think even in a constructive setting you'll quickly hit countable infinity
14:00:34 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
14:01:02 <__monty__> That's what I suspect. But you'll never catch me speaking confidently about math stuffs.
14:01:30 <sshine_> does megaparsec not have 'brackets', 'braces' and 'parens'?
14:02:37 <merijn> sshine_: You want parsers
14:02:39 <__monty__> @hoogle Control.Applicative.Combinators.between
14:02:39 <lambdabot> Control.Applicative.Combinators between :: Applicative m => m open -> m close -> m a -> m a
14:02:41 <merijn> (the package)
14:02:51 <merijn> or the other one
14:02:53 <__monty__> I think the package is parser-combinators?
14:02:55 ubert joins (~Thunderbi@91.141.56.213.wireless.dyn.drei.com)
14:02:57 <merijn> ah, yeah
14:03:23 <merijn> Should be re-exported from megaparsec, but they didn't explicitly re-export, so the docs don't show up
14:04:40 × jess quits (~jess@libera/staff/jess) ()
14:05:00 <__monty__> I was hoping hoogle would list the package tbh. That's the only reason I qualified.
14:05:14 <tomsmeding> hoogle never lists package names except in the web interface
14:05:17 <tomsmeding> this annoys me every single time
14:05:30 <sshine_> ah, that's why. and yes, I did look in parser-combinators by hitting 's' in hackage.
14:05:31 <tomsmeding> what use is searching for a name in a global list of packages if the search result doesn't show the package name
14:06:03 <tomsmeding> luckily there is 'hoogle server' :p
14:06:22 <__monty__> Yeah, it's suboptimal. The other unfortunate part is it only searches stackage : /
14:06:23 <sshine_> the only reference I find is in megaparsec in this comment: https://hackage.haskell.org/package/megaparsec-9.1.0/docs/Text-Megaparsec-Char-Lexer.html#v:symbol
14:07:14 <__monty__> Tbf that reference does show you exactly what you want though?
14:07:59 ec joins (~ec@gateway/tor-sasl/ec)
14:08:32 <sshine_> __monty__, I'd like to know where to import them from. I don't see that anywhere?
14:08:40 × chomwitt quits (~chomwitt@2a02:587:dc0c:e200:12c3:7bff:fe6d:d374) (Ping timeout: 240 seconds)
14:09:04 <sshine_> I think maybe they're not defined because megaparsec tries to be agnostic about parsing whitespace.
14:09:32 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
14:09:41 vgtw joins (~vgtw@c-9164205c.07-348-756d651.bbcust.telenor.se)
14:10:15 <__monty__> You mean the specific ones or "between"? Because yeah, only the latter is defined.
14:10:23 <sshine_> yes, the specific ones.
14:18:33 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
14:22:16 × oxide quits (~lambda@user/oxide) (Ping timeout: 268 seconds)
14:23:45 justsomeguy joins (~justsomeg@user/justsomeguy)
14:24:26 × raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.2)
14:24:46 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:27:43 nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
14:28:22 × benin036932 quits (~benin@106.198.88.152) (Read error: Connection reset by peer)
14:29:09 slowButPresent joins (~slowButPr@user/slowbutpresent)
14:29:27 benin036932 joins (~benin@183.82.178.142)
14:31:16 lambdap joins (~lambdap@static.167.190.119.168.clients.your-server.de)
14:31:32 × gambpang quits (~ian@207.181.230.156) (Ping timeout: 268 seconds)
14:37:04 drd joins (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4)
14:38:53 × haykam quits (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
14:39:08 haykam joins (~haykam@static.100.2.21.65.clients.your-server.de)
14:39:40 × lambdap quits (~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: lambdap)
14:40:01 lambdap joins (~lambdap@static.167.190.119.168.clients.your-server.de)
14:42:07 jakalx joins (~jakalx@base.jakalx.net)
14:44:29 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
14:45:42 × glassy quits (~glassy@user/glassy) (Quit: Client closed)
14:47:58 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2)
14:48:09 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:49:10 × Obo quits (~roberto@185.76.9.42) (Ping timeout: 240 seconds)
14:51:52 × betelgeuse quits (~john2gb@user/john2gb) (Quit: The Lounge - https://thelounge.chat)
14:53:32 betelgeuse joins (~betelgeus@94-225-47-8.access.telenet.be)
14:55:12 gambpang joins (~ishipman@207.181.230.156)
14:55:41 ec joins (~ec@gateway/tor-sasl/ec)
14:56:06 MidAutumnMoon joins (~MidAutumn@user/midautumnmoon)
14:59:16 × slack1256 quits (~slack1256@191.126.43.49) (Ping timeout: 268 seconds)
14:59:20 slac47615 joins (~slack1256@181.203.101.233)
15:06:44 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
15:08:03 × Vajb quits (~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer)
15:08:12 chomwitt joins (~chomwitt@ppp-94-67-193-240.home.otenet.gr)
15:08:31 × nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
15:09:15 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:09:20 Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
15:09:26 × dolio quits (~dolio@130.44.130.54) (Ping timeout: 272 seconds)
15:09:49 dolio joins (~dolio@130.44.130.54)
15:10:28 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
15:10:54 ec joins (~ec@gateway/tor-sasl/ec)
15:11:18 × chisui quits (~chisui@200116b864e3ed0025ab38eae95cca2d.dip.versatel-1u1.de) (Quit: Client closed)
15:12:04 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
15:13:40 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
15:15:21 img joins (~img@user/img)
15:15:23 zebrag joins (~chris@user/zebrag)
15:15:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
15:18:37 × fvr quits (uid503686@id-503686.highgate.irccloud.com) (Quit: Connection closed for inactivity)
15:20:51 × Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 268 seconds)
15:20:52 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
15:21:10 × Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Ping timeout: 240 seconds)
15:22:11 Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
15:23:13 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
15:24:45 pavonia joins (~user@user/siracusa)
15:28:21 ale-pi joins (~user@2001:b07:a5b:4e95:7285:c2ff:feb3:1e28)
15:28:43 ale-pi parts (~user@2001:b07:a5b:4e95:7285:c2ff:feb3:1e28) ()
15:29:26 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
15:30:19 × burnsidesLlama quits (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Remote host closed the connection)
15:30:51 burnsidesLlama joins (~burnsides@client-8-71.eduroam.oxuni.org.uk)
15:32:00 × Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
15:32:33 Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
15:32:37 jakalx parts (~jakalx@base.jakalx.net) ()
15:33:33 × dajoer quits (~david@user/gvx) (Quit: leaving)
15:35:40 × burnsidesLlama quits (~burnsides@client-8-71.eduroam.oxuni.org.uk) (Ping timeout: 268 seconds)
15:42:02 jakalx joins (~jakalx@base.jakalx.net)
15:44:35 slac47615 is now known as slack1256
15:44:38 × zopsi quits (~zopsi@irc.dir.ac) (Quit: Oops)
15:45:03 zopsi joins (~zopsi@irc.dir.ac)
15:46:37 ec joins (~ec@gateway/tor-sasl/ec)
15:51:13 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:51:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:51:26 chisui joins (~chisui@200116b864e3ed008dc027ad9120a9d2.dip.versatel-1u1.de)
15:53:23 jonathanx__ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
15:54:29 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
15:54:42 burnsidesLlama joins (~burnsides@dhcp168-025.wadham.ox.ac.uk)
15:55:52 <chisui> Hey, I'm trying to write a simple modular synthesizer using sdl2 and conduit. I would like to write the outputs as conduit consumers. Unfortunately sdl plays samples via a callback that provides a buffer to write into: `IOVector actualSampleType -> IO ()`. How can I create a consumer that provides such a function? This is my first time working with
15:55:52 <chisui> conduit.
15:56:03 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 258 seconds)
15:56:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds)
15:57:07 × vysn quits (~vysn@user/vysn) (Ping timeout: 245 seconds)
15:58:08 × yushyin quits (PW3hWJBC9s@karif.server-speed.net) (Quit: WeeChat 3.1)
15:58:17 yushyin joins (eUaFhTnLYh@karif.server-speed.net)
15:59:12 × burnsidesLlama quits (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Ping timeout: 245 seconds)
15:59:51 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
16:01:51 dyeplexer joins (~dyeplexer@user/dyeplexer)
16:02:08 <chisui> Essentially what I need is a pull consumer.
16:02:10 × jonathanx__ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 240 seconds)
16:02:11 × dsrt^ quits (~dsrt@209.65.131.194) (Ping timeout: 268 seconds)
16:04:07 × Vajb quits (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
16:04:23 Vajb joins (~Vajb@2001:999:252:4e3c:27f9:d93:655e:583)
16:04:43 falsifian parts (~falsifian@exoco.falsifian.org) ()
16:11:21 <carbolymer> any ideas how can I print colors using Turtle?
16:13:58 <maerwald> https://hackage.haskell.org/package/pretty-terminal
16:15:56 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
16:16:17 × hueso quits (~root@user/hueso) (Quit: hueso)
16:17:11 hueso joins (~root@user/hueso)
16:17:22 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
16:19:02 <jay-invariant> chisui: One solution would be to use stm-conduit to pass the results to a channel push-style, and then have another thread running the callback that reads from the channel.
16:19:38 <carbolymer> maerwald: I mean... I have an opposite problem, my commands output colors and I want to print them. >>= echo seems to do the trick, anyway, thanks
16:20:55 <jay-invariant> chisui: You could also use another library that supports pull-style consumers natively. I'm fond of dunai, and I think pipes can also do it if configured right
16:20:58 × octeep[m] quits (~octeepmoc@2001:470:69fc:105::695e) (Quit: You have been idle for 30+ days)
16:22:01 Atum_ joins (~IRC@user/atum/x-2392232)
16:22:31 <chisui> jay-invariant: Yeah, pipes is more what I need here. I'll take a look at dunai. Thanks
16:22:44 octeep[m] joins (~octeepmoc@2001:470:69fc:105::695e)
16:23:01 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
16:23:25 octeep[m] parts (~octeepmoc@2001:470:69fc:105::695e) ()
16:24:56 × jtomas quits (~jtomas@233.red-83-34-2.dynamicip.rima-tde.net) (Remote host closed the connection)
16:27:23 nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
16:27:39 timCF joins (~timCF@200-149-20-81.sta.estpak.ee)
16:29:07 <timCF> Hello! Was anybody able to cross-compile Haskell programs for armv6 platform? Maybe you can recommend me some resources where I can learn how it can be done?
16:30:16 × frosky_ quits (~froskyarr@50.7.59.207) (Quit: Leaving)
16:30:52 dsrt^ joins (~dsrt@209.65.131.194)
16:31:22 burnsidesLlama joins (~burnsides@dhcp168-025.wadham.ox.ac.uk)
16:32:07 × nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
16:33:15 ec joins (~ec@gateway/tor-sasl/ec)
16:33:30 <chisui> jay-invariant: Um, can you give me any pointers on how to use dunai with pull?
16:35:10 shapr hops randomly
16:35:21 <shapr> Hello peoples! How's the code?
16:36:42 × burnsidesLlama quits (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Ping timeout: 245 seconds)
16:39:47 × keutoi quits (~keutoi@157.48.244.189) (Ping timeout: 268 seconds)
16:40:06 <jay-invariant> chisui: In dunai, each component is consuming one input per "tick", and producing one output. The basic type is an `MSF m a b`, which is a function that takes a stream of `a`s into a stream of `b`s, with monadic effects in `m`. At the end of the day you want to use combinators to get to a `MSF IO () ()` which you can run in a loop with `reactimate`.
16:40:44 × mousey quits (~skymouse@gateway/tor-sasl/mousey) (Ping timeout: 244 seconds)
16:41:25 keutoi joins (~keutoi@27.59.202.95)
16:43:43 mousey joins (~skymouse@gateway/tor-sasl/mousey)
16:48:21 <jay-invariant> chisui: I imagine the tricky part is setting up the sink on the end. One approach might be to run individual steps directly in the callback with `unMSF`.
16:48:21 <chisui> jay-invariant: My current plan would be to append an action that pushes a value into an `IORef [Int16]` and call `Data.MonadicStreamFunction.ReactHandle.react` as many times as the buffer is long and then copy the values from the IORef to the buffer. That seems a little clunky though.
16:48:21 <chisui> maybe manually stepping through unMSF would be easier.
16:48:34 drownbes joins (~igloo@gprs-inet-183-219.elisa.ee)
16:49:31 × mousey quits (~skymouse@gateway/tor-sasl/mousey) (Ping timeout: 244 seconds)
16:49:46 × drownbes quits (~igloo@gprs-inet-183-219.elisa.ee) (Remote host closed the connection)
16:49:48 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:49:55 <jay-invariant> chisui: I think the best might be to write something like `ReactHandle`, but which produces the right output type, rather than ().
16:50:37 <jay-invariant> The code in ReactHandle is pretty short, it looks like it just steps using unMSF
16:50:48 <jay-invariant> and saves the continuation in an IORef
16:50:58 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
16:51:35 <chisui> jay-invariant: Since it's real time audio I should probably just have one thread filling a buffer and another one reading from it. That could be achieved with just `reactimate`.
16:51:42 × keutoi quits (~keutoi@27.59.202.95) (Ping timeout: 245 seconds)
16:52:18 <jay-invariant> ^^ That too. Although to be fair you could do that with conduit as well
16:52:47 keutoi joins (~keutoi@223.238.95.231)
16:54:37 <chisui> I'm intrigued by the interface dunai provides
16:57:40 × keutoi quits (~keutoi@223.238.95.231) (Ping timeout: 268 seconds)
16:59:00 keutoi joins (~keutoi@157.47.61.149)
17:00:22 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
17:00:39 mousey joins (~skymouse@gateway/tor-sasl/mousey)
17:06:37 × arw_ quits (~arw@impulse.informatik.uni-erlangen.de) (Remote host closed the connection)
17:07:10 econo joins (uid147250@user/econo)
17:11:35 ec joins (~ec@gateway/tor-sasl/ec)
17:15:40 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
17:16:40 × drd quits (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds)
17:17:24 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
17:19:04 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:21:56 × themc47 quits (~mc47@xmonad/TheMC47) (Quit: Leaving)
17:22:14 mc47 joins (~mc47@xmonad/TheMC47)
17:26:31 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
17:27:36 <dsal> timCF: I used to build my own GHC for armv7. It was always a fun challenge.
17:27:37 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
17:28:23 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
17:29:22 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
17:29:43 <chisui> jay-invariant: Thank's for showing me dunai. Once the system is running, it's super clean: `reactimate (time . sinwave . play)`
17:30:53 <chisui> * `reactimate (time . sinwave 440 . play)`
17:32:02 × chisui quits (~chisui@200116b864e3ed008dc027ad9120a9d2.dip.versatel-1u1.de) (Quit: Client closed)
17:32:42 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:33:06 chisui joins (~chisui@200116b864e3ed008dc027ad9120a9d2.dip.versatel-1u1.de)
17:34:03 tfeb joins (~tfb@88.98.95.237)
17:36:02 jakalx joins (~jakalx@base.jakalx.net)
17:37:07 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 245 seconds)
17:37:27 × keutoi quits (~keutoi@157.47.61.149) (Quit: leaving)
17:38:05 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 244 seconds)
17:38:55 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:40:21 burnsidesLlama joins (~burnsides@dhcp168-025.wadham.ox.ac.uk)
17:41:00 × burnsidesLlama quits (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Remote host closed the connection)
17:41:03 fendor_ joins (~fendor@77.119.161.62.wireless.dyn.drei.com)
17:41:26 burnsidesLlama joins (~burnsides@dhcp168-025.wadham.ox.ac.uk)
17:42:10 Guest|96 joins (~Guest|96@97-120-201-204.ptld.qwest.net)
17:42:10 MoC joins (~moc@user/moc)
17:42:27 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:43:55 × fendor quits (~fendor@178.165.173.29.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
17:45:52 × burnsidesLlama quits (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Ping timeout: 245 seconds)
17:49:16 <abhixec> trying to install termonad and getting Could not find module ‘GI.GModule.Structs.Module’ anyone know how I can resolve this?
17:52:06 <abhixec> oops wrong channel sorry!
17:52:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:52:19 × Guest|96 quits (~Guest|96@97-120-201-204.ptld.qwest.net) (Quit: Connection closed)
17:53:44 × tfeb quits (~tfb@88.98.95.237) (Quit: died)
17:54:06 × PinealGlandOptic quits (~PinealGla@37.115.210.35) (Quit: leaving)
17:57:57 × retroid_ quits (~retro@5ec19a54.skybroadband.com) (Ping timeout: 258 seconds)
17:58:07 × Vajb quits (~Vajb@2001:999:252:4e3c:27f9:d93:655e:583) (Read error: Connection reset by peer)
17:58:58 Vajb joins (~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
18:00:27 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
18:00:43 nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
18:02:46 aegon joins (~mike@174.127.249.180)
18:05:21 × nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds)
18:07:39 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:08:50 <jay-invariant> timCF: I think you may need to build your own GHC. The first step is generally to install the cross toolchain (gcc, ld, libraries, etc.) for your target platform, and then you follow https://gitlab.haskell.org/ghc/ghc/-/wikis/building/cross-compiling . I've done it for ARM before and I ran into an issue with LD; it was fixed by forcing GHC to use gold (an alternate linker, included in gnu binutils)
18:10:07 × MoC quits (~moc@user/moc) (Quit: Konversation terminated!)
18:10:19 <jay-invariant> This blog: https://medium.com/@zw3rk/a-haskell-cross-compiler-for-raspberry-pi-ddd9d41ced94 and several of the posts linked there may be useful
18:12:08 <jay-invariant> Also note that template haskell causes some major pain when cross-compiling. People have set up some solutions, but if you don't need it I would avoid TH all together
18:14:15 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
18:17:15 nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
18:21:31 burnsidesLlama joins (~burnsides@dhcp168-025.wadham.ox.ac.uk)
18:23:22 × nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds)
18:25:01 <chisui> Is there a `while :: IO Bool -> IO b -> IO ()` equivalent in base?
18:26:09 × burnsidesLlama quits (~burnsides@dhcp168-025.wadham.ox.ac.uk) (Ping timeout: 248 seconds)
18:26:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
18:26:30 <glguy> no
18:26:31 mud joins (~mud@user/kadoban)
18:27:01 eight joins (~eight@user/eight)
18:29:12 <monochrom> There is one in some packages on hackage such as monad-loop (I forgot the exact name) and other.
18:29:27 <monochrom> But you can tell how much I actually care.
18:29:37 <dsal> @hoogle IO Bool -> IO b -> IO b
18:29:38 <lambdabot> GHC.Base thenIO :: IO a -> IO b -> IO b
18:29:38 <lambdabot> HsShellScript (-|=) :: IO a -> IO b -> IO b
18:29:38 <lambdabot> HsShellScript (=|=) :: IO a -> IO b -> IO b
18:29:51 <dsal> That's weird.
18:30:21 <jay-invariant> It can't have that signature. What if the first action returned `False`, then you'd be getting a `b` out of nowhere
18:30:39 <monochrom> Even in C, C++, and Java, I don't really find myself writing pure for-loops and pure while-loops all that much. There is always a "break" or "continue" or "return" in the middle.
18:31:17 <monochrom> Therefore in Haskell a while-loop feature is of even lesser relevance. If it's already pretty irrelevant in C.
18:32:14 <dsal> I've used whileM_ once as far as I can tell.
18:32:18 <dsal> @hoogle whileM_
18:32:18 <lambdabot> Control.Monad.Loops whileM_ :: Monad m => m Bool -> m a -> m ()
18:32:24 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
18:32:28 <monochrom> Whenever in C you see me "using" a while-loop but has some breaks and continues in the middle, you know that I would use handwritten recursion in the Haskell equivalent.
18:32:48 <chisui> I have to manually implement a spinlock. It also would be just 4 lines long.
18:34:23 <dsal> My one use case is: `runWaitForUploads = whileM_ inProgress (sleep 15)`
18:34:40 <monochrom> heh
18:34:47 kuribas joins (~user@ptr-25vy0iacpr2aovgi62v.18120a2.ip6.access.telenet.be)
18:37:28 lavaman joins (~lavaman@98.38.249.169)
18:37:53 <jay-invariant> chisui: I'm curious, what do you need a spinlock for? I'm no expert, but the advice I've heard is "never use spinlocks in userspace"
18:37:59 × spruit11_ quits (~quassel@2a02:a467:ccd6:1:2d8e:31e9:d2b5:c97d) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
18:38:14 <chisui> jay-invariant: so that the buffer doesn't overflow.
18:38:20 spruit11 joins (~quassel@2a02:a467:ccd6:1:2d8e:31e9:d2b5:c97d)
18:39:24 <chisui> Currently the `sinwave 440` produces output faster than sdl outputs, so I have to throttle the generating thread somehow.
18:39:31 <jay-invariant> chisui: Why not use some higher-level queue that already handles the locking?
18:39:31 × Atum_ quits (~IRC@user/atum/x-2392232) (Quit: Atum_)
18:40:30 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
18:41:02 <dsal> blocking buffered queues are good at that sort of thing.
18:41:54 <chisui> Do you have any packages I could take a look at?
18:42:46 <monochrom> You can start with MVar. Comes with GHC. Control.Concurent.MVar or something. And it is not the only choice, there are others.
18:43:44 <monochrom> MVar equals bounded queue of capacity 1.
18:43:47 × cheater quits (~Username@user/cheater) (Ping timeout: 245 seconds)
18:44:08 <jay-invariant> I know `stm` has a `TChan` and `TQueue`, but those are both unbounded. You could make it bounded using a semaphore, or look for another package.
18:44:16 <monochrom> If you like a larger capacity, there are choices.
18:44:41 <monochrom> You're in luck. stm also has a TBQueue.
18:45:19 <jay-invariant> ah, I missed that
18:45:20 <chisui> I need an efficient implementation of 200k Int32
18:45:34 <chisui> s/of/for/
18:46:12 <dsal> Oh interesting. TBQueue has two counters. I guess that makes sense. I would've just used an unbounded queue and one counter.
18:46:29 idf parts (~idf@198.23.223.146) (Killed buffer)
18:46:58 Atum_ joins (~IRC@user/atum/x-2392232)
18:47:26 cheater joins (~Username@user/cheater)
18:47:34 <monochrom> I think it's 2 counters because it's 2 lists. The usual pure functional "queue is 2 lists, front and back" trick.
18:48:12 <aegon> i'm having a rough time deciphering this error message. I think i need to use some form of lift, but maybe i'm instancing MonadHttp in an incorrect place?
18:48:17 <aegon> https://paste.tomsmeding.com/lG8UF1es
18:48:36 <jay-invariant> One way to get a constant-factor speedup would be to feed the queue fixed-sized chunks of many Int32's. You could make a sink like `MSF IO Int32 ()` that internally fills a vector, then pushes it to the queue when it's reached a certain size
18:49:23 fendor_ is now known as fendor
18:49:42 × kuribas quits (~user@ptr-25vy0iacpr2aovgi62v.18120a2.ip6.access.telenet.be) (Ping timeout: 258 seconds)
18:50:20 × koolazer quits (~koo@user/koolazer) (*.net *.split)
18:50:20 × synthmeat quits (~synthmeat@user/synthmeat) (*.net *.split)
18:50:20 × Hafydd quits (~Hafydd@user/hafydd) (*.net *.split)
18:50:20 × vjoki quits (~vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split)
18:50:20 × phaazon quits (~phaazon@2001:41d0:a:fe76::1) (*.net *.split)
18:50:20 × monochrom quits (trebla@216.138.220.146) (*.net *.split)
18:50:25 Erutuon joins (~Erutuon@user/erutuon)
18:50:30 synthmeat joins (~synthmeat@user/synthmeat)
18:50:30 Hafydd joins (~Hafydd@user/hafydd)
18:50:30 vjoki joins (~vjoki@2a00:d880:3:1::fea1:9ae)
18:50:30 phaazon joins (~phaazon@2001:41d0:a:fe76::1)
18:50:30 monochrom joins (trebla@216.138.220.146)
18:50:41 koolazer joins (~koo@user/koolazer)
18:51:59 <chisui> Well I have a large `IOVector` I write audio samples to. In another thread I generate these samples. Currently this causes an error since the buffer fills up too quickly. My current solution is that I set a limit and in the `arrM` function I spin wait until the buffer is empty enough to fill it again.
18:54:02 <monochrom> If that case you can easily replace the spin-lock by a real-lock. MVar as a size-1 queue is equiv to a lock, too.
18:54:34 <monochrom> You can define "acquire" to be one of putMVar or takeMVar, "release" to be the other.
18:54:35 <jay-invariant> aegon: I think you need to `lift $ R.deleteAnchor c auuid`, since `ScottyT` does not forward the underlying monad's `MonadHTTP`
18:55:13 <aegon> jay-invariant: i found a lift from ActionT e m a's instance of MonadTrans that i think would do the job but I can't find out where to import it from
18:55:17 <monochrom> Or s/acqure/green light/, s/release/red light/. Or whatever convention you feel like.
18:55:55 <jay-invariant> aegon: I think just `Control.Monad.Trans`
18:56:04 <jay-invariant> in mtl
18:56:42 <aegon> jay-invariant: aand, works. thanks :)
18:58:28 <jay-invariant> aegon: I would create the IOVector and fill it in the sending thread, then send it via TBQueue (or MVar, if you only want to buffer one chunk) to the callback thread. Then the callback thread just passes the vector along
18:58:42 <aegon> chisui: ^
18:58:55 <jay-invariant> oh yeah whoops chisui
18:59:25 × eight quits (~eight@user/eight) (Quit: leaving)
18:59:34 <monochrom> MVar is very cheap.
19:00:08 <monochrom> STM is where yes you can begin worrying about overhead. One single MVar? No.
19:00:22 <chisui> Unfortunately I don't know how big the read chunk will be before it is requested
19:00:53 <chisui> I would have 50000 write actions on the MVar right?
19:01:34 <jay-invariant> chisui: no, I'm suggesting you make a large vector, and write the MVar once, when the vector is full
19:01:51 <jay-invariant> that way you never have to worry about a vector being accessed by two threads at once
19:01:56 <monochrom> The MVar contains ().
19:02:44 <monochrom> You use it as a green light red light. Not for storing data.
19:02:58 <chisui> Ahhh, I have never seen the `MVar ()` as mutex pattern before.
19:03:00 <monochrom> "message" does not always mean data either.
19:03:25 <monochrom> (ever heard of "control messages"?)
19:03:26 <jay-invariant> oh, well that's not how I would do it. I'm more of a fan of go's "share memory by communicating, don't communicate by sharing memory"
19:03:46 <chisui> monochrom: no I haven't heard of control messages
19:04:45 <monochrom> I guess I have more lower-level background than average. But network protocols are full of control messages.
19:04:54 <monochrom> especially for flow control
19:05:57 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
19:06:19 <monochrom> And my supervisor's enlightening comment that "synchonization" is a special case of messaging. Think about it.
19:07:18 idf joins (~idf@198.23.223.146)
19:07:22 <jay-invariant> Something like a `TBQueue (Vector Int)`, where each Vector has some large fixed size, should be reasonably efficient without much risk of concurrency bugs
19:07:24 <monochrom> If you and I are synchronizing, perhaps I'm waiting for you and you tell me "now it's time" when the time comes. Well that's a message right there.
19:07:34 <chisui> well, what if the callback requests 40k samples and the next time 50k samples? How to I know when to provide compute more values?
19:08:40 <jay-invariant> The size of the chunks you send might not be exactly the size the callback asks for, in which case the callback thread will have to handle re-arranging the vectors
19:08:44 <aegon> chisui: I'm probably derailing things here, but what about using a chunked consumer type patternwhere if you want to process 50 at a time, consume till 50, then had those 50 off to the audio proc
19:08:54 <aegon> is there any reason you can't chunk audio processing in the middle?
19:09:49 <chisui> aegon: the audio library I'm using determines the chunk size on demand
19:11:01 lavaman joins (~lavaman@98.38.249.169)
19:11:03 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:11:24 <jay-invariant> The reason I'm suggesting `TBQueue (Vector Int)` over just `TBQueue Int` is just for efficiency, but conceptually it's the same idea: the callback will read some number of Ints from the queue and copy them into the buffer until its full
19:12:58 Pickchea joins (~private@user/pickchea)
19:13:00 aarvar joins (~aaron@2601:602:a080:fa0:c9d0:9f94:946c:b2f0)
19:13:08 <jay-invariant> I think some amount of copying and re-arranging is unavoidable, since you want to start processing before the callback has handed you the destination buffer
19:14:54 Axma97927 joins (~Axman6@user/axman6)
19:16:18 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2)
19:17:25 <jay-invariant> It might be more readable to split it into a pure `chunk :: MSF m Int (Maybe (Vector Int))` that builds up immutable chunks using the ST monad or something under the hood, and then pass that to a sink that enqueues it
19:18:05 × Axman6 quits (~Axman6@user/axman6) (Ping timeout: 256 seconds)
19:19:24 × aegon quits (~mike@174.127.249.180) (Remote host closed the connection)
19:19:56 pompez joins (~martin@user/pompez)
19:20:10 gehmehgeh joins (~user@user/gehmehgeh)
19:20:16 × pompez quits (~martin@user/pompez) (Client Quit)
19:33:09 Axman6 joins (~Axman6@user/axman6)
19:35:27 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
19:35:39 × Axma97927 quits (~Axman6@user/axman6) (Ping timeout: 256 seconds)
19:40:06 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:42:30 × chisui quits (~chisui@200116b864e3ed008dc027ad9120a9d2.dip.versatel-1u1.de) (Quit: Client closed)
19:45:13 chisui joins (~chisui@200116b864e3ed0070d95a3d3da0f298.dip.versatel-1u1.de)
19:46:20 aegon joins (~mike@174.127.249.180)
19:46:28 <aegon> ws ge
19:46:33 <aegon> whoops
19:59:05 bryan[m] is now known as chreekat[m]
20:00:06 jakalx joins (~jakalx@base.jakalx.net)
20:00:29 jgeerds joins (~jgeerds@55d45555.access.ecotel.net)
20:00:37 fernand joins (~fernand@179.156.35.4)
20:00:38 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
20:01:06 stiell joins (~stiell@gateway/tor-sasl/stiell)
20:04:16 Cajun joins (~Cajun@user/cajun)
20:05:45 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 268 seconds)
20:06:49 juhp joins (~juhp@128.106.188.220)
20:07:29 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
20:08:02 × fernand quits (~fernand@179.156.35.4) (Quit: Connection closed)
20:14:10 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
20:14:31 × chisui quits (~chisui@200116b864e3ed0070d95a3d3da0f298.dip.versatel-1u1.de) (Ping timeout: 246 seconds)
20:17:37 × mei quits (~mei@user/mei) (Ping timeout: 248 seconds)
20:22:47 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:27:30 acidjnk_new3 joins (~acidjnk@p200300d0c72b955208843bbbc6b733a4.dip0.t-ipconnect.de)
20:27:31 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
20:30:44 geekosaur joins (~geekosaur@xmonad/geekosaur)
20:31:25 retroid_ joins (~retro@5ec19a54.skybroadband.com)
20:35:40 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
20:37:16 × doyougnu quits (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection)
20:40:10 MQ-17J joins (~MQ-17J@2607:fb90:8824:bf5d:8f75:f298:534b:ce5e)
20:40:49 × forell quits (~forell@user/forell) (Quit: ZNC - https://znc.in)
20:41:07 forell joins (~forell@user/forell)
20:44:39 obs joins (~obscur1ty@user/obs/x-5924898)
20:45:22 <sshine_> merijn, https://github.com/sshine/hs-verifpal/runs/3354820416?check_suite_focus=true <- I wrote a while back that I'd get back once I saw cabal fail in my CI setup. here's an example.
20:47:47 <sshine_> oops, I think I know what's wrong.
20:48:22 × obs\ quits (~obscur1ty@user/obs/x-5924898) (Ping timeout: 245 seconds)
20:48:32 <sshine_> this wasn't a cabal thing, but an actual backwards compatibility thing.
20:48:33 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 248 seconds)
20:51:10 <aegon> is there a "gentle" way of learning more about template haskell and generics or is it more diving into the deep, like is there some dumb problem you can solve with reasonably simple th / generics to get a feel for it?
20:51:24 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:54:05 <sshine_> aegon, https://markkarpov.com/tutorial/th.html is one resource
20:55:18 <aegon> sshine_: thanks!
20:55:58 × Atum_ quits (~IRC@user/atum/x-2392232) (Ping timeout: 244 seconds)
20:56:09 Atum_ joins (~IRC@user/atum/x-2392232)
20:57:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 248 seconds)
20:57:09 × skykanin quits (~skykanin@115.81-166-221.customer.lyse.net) (Quit: WeeChat 3.2)
20:57:33 <sshine_> aegon, wrt. Generic, there's an article on how 'deriving' works in GHC that may serve as inspiration as to what kind of use you want to make of e.g. Generic: https://kowainik.github.io/posts/deriving
20:58:25 <aegon> aslo thanks! these both look great
20:58:57 <sshine_> aegon, here's a newer intro to TH (featured in Haskell Weekly #271): https://serokell.io/blog/introduction-to-template-haskell
21:00:57 <sshine_> I really like this tutorial :)
21:02:24 <gehmehgeh> int-e: by the way, the "sequence" we talked about earlier produces gigantic space leaks. I'm struggling to udnerstand way.
21:02:49 <gehmehgeh> int-e: Example: bla = chunksOf 5 [1..1000]
21:02:58 <jay-invariant> aegon: between the two of them, I would advocate for using generic where possible. It's more limited in scope, and people who need to cross-compile will thank you!
21:03:09 <gehmehgeh> int-e: take 1 $ filter (\x -> head x== 93939393939393) $ sequence bla
21:03:40 <gehmehgeh> tomsmeding: ^
21:05:35 <gehmehgeh> ah, let me refactor this example
21:05:35 <tomsmeding> gehmehgeh: you're using 'sequence' as cartesian product here?
21:05:43 <gehmehgeh> int-e: take 1 $ filter (\x -> False) $ sequence bla
21:05:56 × MQ-17J quits (~MQ-17J@2607:fb90:8824:bf5d:8f75:f298:534b:ce5e) (Read error: Connection reset by peer)
21:06:01 <tomsmeding> so bla :: [[a]]
21:06:07 <gehmehgeh> yeah
21:06:35 <gehmehgeh> just try it out, it take up several GB of RAM in seconds
21:07:05 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
21:07:10 <tomsmeding> gehmehgeh: is this ghci or a file
21:07:17 <gehmehgeh> tomsmeding: both
21:07:33 <tomsmeding> are you compiling the file with optimisations :p
21:07:42 <gehmehgeh> tomsmeding: yeah
21:07:43 <gehmehgeh> -O2
21:07:55 <gehmehgeh> well, OK, in the file I don't have the type [[a]]
21:08:01 <gehmehgeh> but it's close enough
21:08:36 <tomsmeding> fascinating
21:09:02 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
21:10:15 <gehmehgeh> tomsmeding: hmm, I haven't tried the version I just posted here with -O2 and ghc, but something complicated. Maybe it will actually work as intended if it's just something like [[Int]]
21:10:49 <tomsmeding> doesn't work for me and I'm trying to figure out why
21:10:56 <tomsmeding> as in, your trivial example explodes
21:11:31 <gehmehgeh> that's actually good news for me, because this means the rest of my code is probalby OK
21:11:35 <gehmehgeh> *probably
21:11:42 × gambpang quits (~ishipman@207.181.230.156) (Remote host closed the connection)
21:11:52 <gehmehgeh> tomsmeding: you can also try "mapM id", but I guess that's just "sequence"?
21:12:16 <gehmehgeh> hm, seems like
21:12:49 Sgeo joins (~Sgeo@user/sgeo)
21:13:17 <aegon> sshine_: jay-invariant: thanks! i'll be parsing them over the next couple of days
21:13:48 <gehmehgeh> tomsmeding: have to go to bed now, I'll be back tomorrow
21:14:10 × polyphem quits (~polyphem@2a02:810d:640:776c:f4c0:a27a:540e:c15e) (Ping timeout: 272 seconds)
21:14:14 <gehmehgeh> tomsmeding: if you somehow find out what the problem is, let me know :) Thanks! :)
21:14:20 <tomsmeding> of course :p
21:14:38 <tomsmeding> but low expectatiosn
21:14:43 <gehmehgeh> sure!
21:15:09 <gehmehgeh> it's actually int-e's trick, taken from the "blow your mind" Haskell wiki page
21:15:30 <gehmehgeh> good nicht
21:15:32 <gehmehgeh> night
21:15:40 <tomsmeding> g'night :)
21:15:43 son0p joins (~ff@181.136.122.143)
21:15:46 fernand joins (~fernand@179.156.35.4)
21:15:59 <monochrom> It blows the computer's mind.
21:16:25 <monochrom> Galaxy size memory footprint. >:)
21:17:30 <monochrom> But IIRC the code of sequence, when applied to [], specifies so much laziness it spends memory memoizing what you intuitively expect to be re-computed rather than memoized.
21:19:07 <monochrom> https://stackoverflow.com/questions/3190098/space-leak-in-list-program
21:20:05 × Atum_ quits (~IRC@user/atum/x-2392232) (Quit: Atum_)
21:22:09 × amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 248 seconds)
21:23:09 Atum_ joins (IRC@user/atum/x-2392232)
21:25:40 × Guest320 quits (~chris@81.96.113.213) (Remote host closed the connection)
21:25:47 <Drew[m]1> What's the current cool hip effects library everyone is into these days
21:26:20 machinedgod joins (~machinedg@24.105.81.50)
21:26:28 <tomsmeding> monochrom: yeah, that seems to be exactly it
21:26:30 × Atum_ quits (IRC@user/atum/x-2392232) (Client Quit)
21:26:39 <monochrom> You know what, I think s/cool hip everyone is into/much talked about by vocal minority/ would make more sense.
21:26:52 <tomsmeding> sequence is defined somewhat different nowadays, but I'm fairly sure it ends up doing the same thing with regards to sharing the tails
21:26:53 Atum_ joins (~IRC@user/atum/x-2392232)
21:27:12 <monochrom> My impression is that the silent majority are still using merely monad transformer stacks.
21:27:19 <tomsmeding> (the thing being that the ys argument of cons_f is used multiple times in https://hackage.haskell.org/package/base-4.14.0.0/docs/src/Data.Traversable.html#line-230 )
21:27:42 <gehmehgeh> monochrom: cool! thank you!
21:27:57 <Drew[m]1> monochrom: Yeah, and so am I, but today I decided I don't know enough about them to hold an informed opinion, hence the inquiry
21:29:03 <gehmehgeh> hmm, but isn't the official "sequence" definition (on lists) wrong then?
21:29:09 <gehmehgeh> or bad (tm)?
21:29:43 <monochrom> I might agree with "bad". I wouldn't agree with "wrong".
21:30:08 pompez joins (~martin@user/pompez)
21:30:46 chris joins (~chris@81.96.113.213)
21:30:49 chris is now known as Guest9675
21:31:46 <gehmehgeh> hm, anyway, got to go. Thanks for the help
21:31:51 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
21:32:03 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:32:07 × cheater quits (~Username@user/cheater) (Ping timeout: 245 seconds)
21:34:34 drownbes joins (~drownbes@200-149-20-81.sta.estpak.ee)
21:35:02 × Guest9675 quits (~chris@81.96.113.213) (Ping timeout: 245 seconds)
21:35:41 sciencentistguy joins (~sciencent@hacksoc/ordinary-member)
21:36:23 × sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Client Quit)
21:36:25 × ubert quits (~Thunderbi@91.141.56.213.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
21:37:41 × drownbes quits (~drownbes@200-149-20-81.sta.estpak.ee) (Quit: leaving)
21:37:56 drownbes joins (~drownbes@200-149-20-81.sta.estpak.ee)
21:38:01 <fernand> Hi everyone. I'm trying to import housing data from Numeric.Datasets but the default source url is down (https://github.com/DataHaskell/dh-core/blob/master/datasets/src/Numeric/Datasets.hs#L326). Is there a way to switch the source url?
21:38:56 <dsal> fernand: That looks like it is a URL. Can't you just use a different one?
21:39:33 × drownbes quits (~drownbes@200-149-20-81.sta.estpak.ee) (Client Quit)
21:40:10 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
21:40:39 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
21:41:42 Matthias1 joins (~Matthias1@cpe-76-170-236-166.socal.res.rr.com)
21:42:34 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:43:33 drownbes joins (~drownbes@200-149-20-81.sta.estpak.ee)
21:43:33 × drownbes quits (~drownbes@200-149-20-81.sta.estpak.ee) (Client Quit)
21:44:18 <fernand> dsal that's what I would like to do, but I'm not sure how.
21:44:56 × machinedgod quits (~machinedg@24.105.81.50) (Read error: Connection reset by peer)
21:45:07 machinedgod joins (~machinedg@24.105.81.50)
21:45:12 <dsal> Is your problem that something is using that URL and you want to use something different? I'm a bit confused because you could construct your own URL pretty easily, but it sounds like your problem may be something else.
21:46:09 drownbes joins (~drownbes@200-149-20-81.sta.estpak.ee)
21:46:32 × Matthias1 quits (~Matthias1@cpe-76-170-236-166.socal.res.rr.com) (Read error: Connection reset by peer)
21:46:43 Matthia__ joins (~Matthias1@2603-8001-b545-4900-4505-341a-d69c-0ea0.res6.spectrum.com)
21:48:51 × Matthia__ quits (~Matthias1@2603-8001-b545-4900-4505-341a-d69c-0ea0.res6.spectrum.com) (Remote host closed the connection)
21:49:20 Matthias1 joins (~Matthias1@2603-8001-b545-4900-41c7-c56a-b23f-e72e.res6.spectrum.com)
21:49:28 vysn joins (~vysn@user/vysn)
21:51:30 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
21:51:51 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
21:52:17 Matthia__ joins (~Matthias1@2603-8001-b545-4900-55c2-9e3a-8dc6-4263.res6.spectrum.com)
21:53:15 × drownbes quits (~drownbes@200-149-20-81.sta.estpak.ee) (Quit: leaving)
21:54:43 Dima[m] joins (~reddima10@2001:470:69fc:105::366)
21:55:40 × Matthias1 quits (~Matthias1@2603-8001-b545-4900-41c7-c56a-b23f-e72e.res6.spectrum.com) (Ping timeout: 240 seconds)
22:05:13 fresheyeball joins (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net)
22:08:49 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
22:12:20 cheater joins (~Username@user/cheater)
22:13:25 × benin036932 quits (~benin@183.82.178.142) (Ping timeout: 268 seconds)
22:14:10 × aarvar quits (~aaron@2601:602:a080:fa0:c9d0:9f94:946c:b2f0) (Ping timeout: 240 seconds)
22:17:36 <lechner> Hi, in source files, are SQL queries best entered as mklti-line strings?
22:17:45 <lechner> multi
22:18:20 <monochrom> Depends on whether it looks nicer?
22:18:41 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 248 seconds)
22:19:29 × michalz quits (~michalz@185.246.204.62) (Remote host closed the connection)
22:20:10 benin036932 joins (~benin@183.82.178.142)
22:20:39 dajoer joins (~david@user/gvx)
22:20:47 <lechner> it's too long for a single line. is there an alternative?
22:20:51 Erutuon joins (~Erutuon@user/erutuon)
22:21:10 <monochrom> Then make it multi-line.
22:21:34 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
22:22:13 <lechner> ouay, thanus!
22:22:25 <lechner> okay thanks!
22:22:41 <lechner> changed some keks
22:22:41 <sm> I often do s = unlines [
22:22:41 <sm> ...
22:22:41 <sm> ]
22:22:59 <lechner> sm: i liue that!
22:23:04 <lechner> like
22:23:06 <sm> there are nice libs like `here` but they bring complications
22:23:51 <lechner> as a previous Perl addict, i'll explore
22:24:19 <sm> quasiquoter, so maybe less well supported by some
22:24:19 <sm> platforms/some tools, eg
22:24:45 <monochrom> unlines inserts newlines. not sure you want newlines in the middle of a SQL query.
22:24:59 <sm> and just another dependency, so another source of problems
22:25:34 <lechner> hm
22:25:49 <sm> oh I think those are fine for postgres at least ? if not then yes, unwords
22:27:23 <monochrom> unwords is more intuitive, yeah, you do expect to insert a space into ["select", "foo", "where"], which even multi-line string doesn't do for you and you'll be puzzled.
22:27:57 × acidjnk_new3 quits (~acidjnk@p200300d0c72b955208843bbbc6b733a4.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
22:28:26 notzmv joins (~zmv@user/notzmv)
22:29:10 <monochrom> ah I guess SQL uses ; to mark the end, so it is happy with newlines left right and centre.
22:29:27 <hpc> left right and inner
22:30:22 <sm> it's nice to see a a big query nicely formatted on multiple lines in logs, when debugging etc
22:30:26 <hpc> i vote multiline strings
22:30:40 <hpc> it's a bit ugly, but having to faff about with list syntax is worse imo
22:31:11 <sm> hpc: what kind are those again ? something with / line endings ?
22:31:35 <monochrom> \
22:31:48 <monochrom> "hello I am \
22:31:53 <monochrom> \monochrom"
22:32:58 <sm> yeah those seem really ugly and tool-unfriendly but I will give it another try
22:33:20 <monochrom> In fact, it doesn't have to have a newline in the middle. It's generally \whitespaces\
22:33:32 <monochrom> > "hello I am \ \monochrom"
22:33:34 <lambdabot> "hello I am monochrom"
22:34:36 <hpc> in my experience the only tool that matters is ghc :P
22:35:00 <sm> hm, not for me
22:35:09 <monochrom> I would blame it on the tools if they're unfriendly to a piece of very-standardized-for-over-20-years Haskell syntax that merely needs a simple regex to recognize.
22:35:30 × hiruji` quits (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) (Quit: ZNC 1.8.2 - https://znc.in)
22:35:40 × fernand quits (~fernand@179.156.35.4) (Ping timeout: 240 seconds)
22:35:42 <monochrom> We are not even talking about recognizing layouts.
22:35:58 <sm> ha, surely a simple regex will solve everything
22:36:25 <hpc> it'll certainly solve most regular problems :P
22:36:28 <monochrom> But emacs haskell-mode works pretty much correctly with this one.
22:37:10 <glguy> My vim recognizes haskell's multiline strings. I forget if that's default or not though
22:37:12 <monochrom> It does still have a bug but it can be mitigated by deleting and re-inserting some double quotes.
22:38:15 <sm> these paper cuts add up
22:38:37 <hpc> my vim gets confused sometimes by multiline strings, but that's just syntax highlighting
22:38:37 <sm> i'd be interested to know what percentage of haskell projects use that syntax
22:38:46 <hpc> my ide is a vertical split terminal with ghci on one side
22:38:52 <glguy> I redid the haskell.vim syntax highlighting locally
22:39:22 × Atum_ quits (~IRC@user/atum/x-2392232) (Quit: Atum_)
22:41:01 <sm> hpc: not even ghcid ? brutal :)
22:41:33 <monochrom> I haven't needed ghcid since -fdefer-type-errors was introduced.
22:41:44 × vysn quits (~vysn@user/vysn) (Remote host closed the connection)
22:42:22 <hpc> i like minimalism
22:42:30 <glguy> Just having ghcid's reload-on-save behavior changes the way I write Haskell
22:42:56 <hpc> (also i have learned minimalism over time - sometimes i use vi instead of vim because i don't know what's installed)
22:43:20 <monochrom> I use vim.tiny. vi lacks cursor keys.
22:43:54 <hpc> it's probably vim.tiny, just whatever the distro's /bin/vi is
22:44:03 × fendor quits (~fendor@77.119.161.62.wireless.dyn.drei.com) (Remote host closed the connection)
22:44:13 <monochrom> Either that, or it lacks supporting cursor keys when in insert mode.
22:44:42 <hpc> it's both - i remember using real vi aaaaaages ago
22:45:14 <sm> cursor keys are always broken one way or another
22:45:25 <sm> it's a law
22:45:53 <hpc> sometimes i enjoy when they don't work
22:46:00 <hpc> once i put the konami code in my ssh password
22:46:12 <sm> in terminals, at least
22:46:28 <monochrom> hahaha
22:52:40 lavaman joins (~lavaman@98.38.249.169)
22:52:42 <pompez> Hi, new and learning Haskell. I am wondering -- why does the this short snippet (https://paste.tomsmeding.com/6iIA5HM8) evaluate as I'd expect it to? I'd expect 2 input prompts and then evaluating as a 2 elements long IO [String]. But the program just doesn't stop with the prompts. Could it be something about IO that prevents it from being lazily evaluated?
22:53:11 <pompez> *doesn't
22:53:24 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:54:11 <hpc> you're mixing evaluation and execution
22:54:39 <hpc> execution is strict (unless you use a few specific definitions that use lazy IO)
22:55:10 <sclv> sequence just runs the io actions one after the other
22:55:38 <hpc> and since you use repeat, it's going to keep asking forever
22:56:04 <hpc> now what you can do is write something like do {lineActions <- repeat getLine; sequence (take 2 lineActions)}
22:56:19 <hpc> er
22:56:22 <pompez> I tried that and it worked as expected
22:56:37 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
22:56:40 <hpc> that first line is let ...=... but you know what i mean
22:56:54 <pompez> I do
22:56:59 <monochrom> You're expecting the equivalent of: if you have "main = getLine >> getLine >> return ()", it will never need any input from you.
22:57:01 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
22:57:07 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
22:57:07 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
22:57:39 <monochrom> I can respect that expectation if you don't know better a priori, but one single empirical test readily debunks that mental model.
22:58:51 <monochrom> Let's get more whimsical and philosophical. If you have "main = putStrLn "hello"" and run it but you don't look, does the printing happen?
22:59:17 geekosaur joins (~geekosaur@xmonad/geekosaur)
22:59:23 <pompez> monochrom: That example (with a test) really helps
22:59:25 × jay-invariant quits (~jay@c-24-4-6-169.hsd1.ca.comcast.net) (Quit: Leaving)
22:59:26 <sclv> i'd need to look to find out :-)
22:59:37 <sclv> like maybe the computer caught fire
22:59:44 <pompez> Hah
23:00:09 <hpc> @quote warm
23:00:10 <lambdabot> edwardk says: i think the comonads are warm fuzzy, and the monads are warm sticky. its easy to get out of a comonad, its soft and you like wearing it. monads on the other hand stick to you and are
23:00:10 <lambdabot> icky
23:00:18 <pompez> Well, but would it be impossible to do inputs in a lazy manner?
23:00:28 sclv has debugged far too many things to trust anything happens
23:00:33 <monochrom> That's the realm of getContents.
23:00:59 <hpc> @quote 286.ghc
23:00:59 <lambdabot> cjeris says: vincenz: no, on a 286 GHC feels warm, like a little fire you can warm your hands at. wait, that smells funny. wait, that was my CPU.
23:01:18 <monochrom> I generally discourage it unless you have proved that you can perfectly predict lazy evaluation.
23:01:19 <sclv> you can look at the source of sequence, and write a similar version that calls `unsafePerformIO` every time it actually executes an IO action, and that would correspond to what you're looking for
23:01:25 <sclv> but I do _not_ recommend this in practice :-)
23:01:49 <hpc> more directly, there's unsafeInterleaveIO
23:02:06 <sclv> oh right, i meant to say interleave rather than what i did
23:02:41 <hpc> and just to emphasize, the word "unsafe" there is not just for fun
23:02:51 <pompez> Well, I am not intending to do something just because. But why is it not used in practice?
23:02:52 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
23:02:58 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
23:03:08 <sclv> unsafeInterleaveIO basically takes an `IO a` and "delays" it so that when you get the `a` out of it, it doesn't actually perform the IO action until the `a` is evaluated. So hrm... you could map unsafeInterleave over your list, then sequence it..?
23:03:22 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 245 seconds)
23:03:29 <hpc> pompez: evaluation order isn't guaranteed, so tying execution to evaluation makes execution order not guaranteed
23:03:34 <sclv> its not used in practice because predicting evaluation order is tricky, and can lead to surprising effects, even for seasoned programmers
23:04:01 <sclv> and at times things may be repeatedly executed you expected to only be executed once, or things you thought would be executed never are
23:04:07 <monochrom> We want I/O to jump-start lazy evaluation (lest there is really nothing to evaluate). This is simplest if I/O is not lazy.
23:04:31 <sclv> so the sequencing the IO monad provides gives nice guardrails that help reasoning
23:04:34 <pompez> Makes sense
23:04:35 <monochrom> Besides, we don't really want to answer the kind of whimsical philosophical question I posed.
23:05:05 <monochrom> "if no one is looking, should getLine and putStrLn do anything?"
23:05:24 <monochrom> You don't want to go down that rabbit hole. They do their jobs here and now. KISS.
23:05:27 <sclv> (note: I have used and do use these primitives carefully, and in situations that warrant it, but only after thinking really hard, consulting, and deciding it actually makes sense. and even then i've made mistakes and been surprised)
23:05:44 × Cajun quits (~Cajun@user/cajun) (Quit: Client closed)
23:05:55 Guest84 joins (~Guest84@2406:3003:2006:447e:a859:4a56:2629:b84e)
23:07:27 <pompez> Could you maybe recommend a good resource that talks about evaluationand execution as it pertains to Haskell?
23:08:57 <sclv> https://www.seas.upenn.edu/~cis194/fall16/lectures/06-io-and-monads.html ?
23:09:07 <sclv> I suggest playing around yourself just a little longer as you have been
23:09:15 <sclv> and you'll probably get a good intuition fast
23:10:53 <pompez> Will do
23:10:57 <pompez> And thanks a lot
23:13:55 notzmv joins (~zmv@user/notzmv)
23:20:17 hiruji joins (~hiruji@user/hiruji)
23:20:35 <Cale> pompez: Evaluation is the process of turning expressions into values, typically for the purposes of deciding which pattern matches, or occasionally in order to turn an expression of a function type into a lambda so that it can be applied.
23:20:59 <Cale> pompez: In Haskell, that process doesn't cause anything user-visible to happen apart from memory being allocated and the CPU getting hot.
23:22:15 <Cale> Instead, IO action values describe effects. Evaluating the expression for an IO action doesn't cause the effect to occur, it just possibly does some work to figure out which thing to do is being described.
23:23:03 <Cale> Execution is the process of carrying out the effects described by IO action values. In a compiled program, the IO action called 'main' gets executed, and you can also execute IO actions by giving them to ghci.
23:23:53 aarvar joins (~aaron@2601:602:a080:fa0:2492:1e35:77f6:26e2)
23:24:11 <Cale> (It will magically notice when an expression denotes an IO action and execute it for you as well as print the result of the execution. Otherwise, it just tries to use 'show' on things to turn them into a String to print.)
23:25:15 <hpc> one useful thing to note here is that there's no in-language notion of "just execute this" - just sequencing which is "after this executes, execute this"
23:25:22 × Matthia__ quits (~Matthias1@2603-8001-b545-4900-55c2-9e3a-8dc6-4263.res6.spectrum.com) (Remote host closed the connection)
23:25:47 lbseale joins (~lbseale@user/ep1ctetus)
23:25:48 <hpc> and no in-language notion of "just evaluate this" either - just "in order to evaluate this, you need to evaluate that"
23:25:55 <Cale> Yeah, do-blocks let you combine a bunch of IO actions to produce another IO action, and those are syntax sugar for a chain of uses of (>>=) which basically does the same.
23:26:01 argento joins (~argent0@168-227-97-23.ptr.westnet.com.ar)
23:26:02 Matthias1 joins (~Matthias1@2603-8001-b545-4900-55c2-9e3a-8dc6-4263.res6.spectrum.com)
23:27:10 <hpc> and when you're figuring out how something gets evaluated, think in terms of chains of those if-thens
23:27:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
23:28:52 × jgeerds quits (~jgeerds@55d45555.access.ecotel.net) (Ping timeout: 245 seconds)
23:29:03 <hpc> (also when someone says "expr is strict in x", they're saying "in order to evaluate expr, you need to evaluate x")
23:29:50 × superbil quits (~superbil@1-34-176-171.HINET-IP.hinet.net) (Ping timeout: 252 seconds)
23:30:52 × Matthias1 quits (~Matthias1@2603-8001-b545-4900-55c2-9e3a-8dc6-4263.res6.spectrum.com) (Ping timeout: 245 seconds)
23:32:27 <lbseale> I am using haddock to generate some docs, and it's working, but it's ignoring my input for the title. Instead of the title it just says "ml" in the top-left. Anyone know what to do?
23:32:33 <pompez> Cale: Are list comprehensions with <- also just synax sugar for the same thing?
23:33:35 <Cale> pompez: Basically. You could also desugar them in terms of concatMap, but that is equivalent to the (>>=) for lists.
23:33:59 Gurkenglas_ joins (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
23:34:19 <hpc> [f x | x <- something; boolean expression] translates to do {x <- something; guard (boolean expression); pure (f x)}
23:34:26 <monochrom> Instead of answering that question, I would evade it and answer "the generated asm code is the same", and "does it really matter how to compiler gets there?"
23:34:26 <hpc> :t guard
23:34:27 <lambdabot> Alternative f => Bool -> f ()
23:35:00 <hpc> there's a language extension that makes list comprehensions work for more than just lists, but it's a bit of a gimmick
23:35:06 <monochrom> or at least, s/the generated asm code/after optimizations, the generated asm code/
23:35:17 <hpc> i like do notation better, personally
23:35:58 <monochrom> s/how to compiler/how the compiler/
23:35:58 jgeerds joins (~jgeerds@55d45555.access.ecotel.net)
23:37:10 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 240 seconds)
23:41:43 polyphem joins (~polyphem@ip5f5ac3ae.dynamic.kabel-deutschland.de)
23:45:55 × slack1256 quits (~slack1256@181.203.101.233) (Ping timeout: 268 seconds)
23:48:10 × pompez quits (~martin@user/pompez) (Ping timeout: 240 seconds)
23:50:57 × jgeerds quits (~jgeerds@55d45555.access.ecotel.net) (Ping timeout: 245 seconds)
23:57:02 superbil joins (~superbil@1-34-176-171.HINET-IP.hinet.net)
23:57:25 Matthias1 joins (~Matthias1@2603-8001-b545-4900-0d81-0ba2-5923-c2fb.res6.spectrum.com)
23:59:46 fernand joins (~fernand@179.156.35.4)
23:59:56 thyriaen joins (~thyriaen@x4dbf521a.dyn.telefonica.de)

All times are in UTC on 2021-08-17.