Home liberachat/#haskell: Logs Calendar

Logs on 2021-06-26 (liberachat/#haskell)

00:00:04 × Morrow quits (~MorrowM_@147.161.9.9) (Ping timeout: 268 seconds)
00:00:29 <shachaf> But fmap (++"f") doesn't have the type [a] -> [a]
00:00:57 <qrpnxz> but it does
00:01:10 <qrpnxz> a = String, f = []
00:01:38 <shachaf> No, in Haskell "f :: [a] -> [a]" means "f :: forall a. [a] -> [a]".
00:01:47 <qrpnxz> dang it
00:02:00 <shachaf> That's what gives you the free theorem
00:02:03 <qrpnxz> isn't the only thing you can do that is [a] -> [a] id then?
00:02:13 <shachaf> No.
00:02:14 <hpc> or tail
00:02:27 <qrpnxz> hm
00:02:30 <hpc> there's lots of things you can do with the list, just not really its elements
00:02:37 <qrpnxz> ye ye
00:02:41 <MorrowM> @type reverse
00:02:42 <lambdabot> [a] -> [a]
00:03:04 <MorrowM> take, drop, etc
00:03:25 hgolden joins (~hgolden2@cpe-172-114-84-61.socal.res.rr.com)
00:03:36 <shachaf> You can do a lot of things, but they're all structural, not knowing anything about the elements.
00:03:36 <qrpnxz> so you can thing of it like an operation on the elements of the list commutes with an operation on the structure of the list?
00:03:40 <qrpnxz> *think
00:03:59 <qrpnxz> interesting
00:04:02 <shachaf> Sure, something like that.
00:04:28 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
00:04:59 <shachaf> f is a natural transformation, if that means anything.
00:05:14 <qrpnxz> alright
00:05:30 <sm[m]> https://github.com/haskell/time/issues/172
00:08:34 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
00:08:43 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
00:08:50 <sm[m]> ack, I thought time was still managed by the original author.
00:08:59 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
00:14:22 × adinfinitum quits (~adinfinit@2600:6c40:653f:5f00:a650:d8d7:fe0b:8c1f) (Ping timeout: 272 seconds)
00:17:32 × warnz quits (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Remote host closed the connection)
00:18:03 warnz joins (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
00:22:51 × warnz quits (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Ping timeout: 272 seconds)
00:25:49 × alx741 quits (~alx741@181.196.69.199) (Quit: alx741)
00:27:41 alx741 joins (~alx741@181.196.69.199)
00:29:42 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
00:30:45 Cajun joins (~Cajun@ip98-163-211-112.no.no.cox.net)
00:31:23 × stevenxl quits (~stevenlei@174.128.179.103) (Read error: Connection reset by peer)
00:31:38 stevenxl joins (~stevenlei@174.128.179.103)
00:31:50 × funsafe quits (~funsafe@2601:1c1:4200:938f:4e1e:fc56:b28f:5ac7) (Ping timeout: 244 seconds)
00:32:00 × chexum quits (~chexum@gateway/tor-sasl/chexum) (Ping timeout: 244 seconds)
00:33:54 chexum joins (~chexum@gateway/tor-sasl/chexum)
00:34:04 funsafe joins (~funsafe@2601:1c1:4200:938f:4e1e:fc56:b28f:5ac7)
00:34:29 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
00:35:08 × nerdypepper quits (~nerdypepp@152.67.162.71) (Quit: bye)
00:35:27 × xff0x quits (~xff0x@2001:1a81:52c9:c400:7297:5fed:23fc:a105) (Ping timeout: 244 seconds)
00:36:14 xff0x joins (~xff0x@2001:1a81:52c9:c400:e0d8:2879:2fd2:a436)
00:36:48 nerdypepper joins (~nerdypepp@152.67.162.71)
00:37:31 warnz joins (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
00:37:37 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
00:39:36 × alx741 quits (~alx741@181.196.69.199) (Quit: alx741)
00:39:44 × lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
00:40:11 adinfinitum joins (~adinfinit@2600:6c40:653f:5f00:a650:d8d7:fe0b:8c1f)
00:40:51 alx741 joins (~alx741@181.196.69.199)
00:49:11 aerh joins (~aerh@99-39-158-127.lightspeed.ltrkar.sbcglobal.net)
00:49:35 aerh parts (~aerh@99-39-158-127.lightspeed.ltrkar.sbcglobal.net) ()
00:50:39 × warnz quits (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Remote host closed the connection)
00:51:03 <qrpnxz> shouldn't `f (a -> b)` = `f a -> f b` if `f` is a functor?
00:52:14 <shachaf> No.
00:52:37 <qrpnxz> tru
00:53:40 <qrpnxz> ok ok i think i get it now
00:56:23 wei2912 joins (~wei2912@112.199.250.21)
00:56:41 × Deide quits (~Deide@user/deide) (Quit: Seeee yaaaa)
00:58:29 <mason0> sm[m], oh, there's actually getTimeZone :: UTCTime -> IO TimeZone in Data.Time.LocalTime, so tz package may not even be needed
00:58:40 lavaman joins (~lavaman@98.38.249.169)
00:58:45 fYnch joins (~mike@174.127.249.180)
00:59:01 adinfinitum parts (~adinfinit@2600:6c40:653f:5f00:a650:d8d7:fe0b:8c1f) (WeeChat 3.0.1)
00:59:56 <mason0> I did a couple of tests, and it correctly adjusts daylight saving according to passed date for my timezone
01:00:31 nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
01:03:49 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
01:03:50 <fYnch> hey all, i'm trying to update an older project (roughly 7 years old) that uses type families and I'm getting a type error here https://paste.tomsmeding.com/qkCiOvgl
01:04:51 × nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
01:04:58 <fYnch> the error is listed there but it claims an associated type references no type or kind variables of the class. I'm not sure how to parse that, digging through type families doc at the moment but lost
01:05:47 <shachaf> fYnch: Well, What's b supposed to be?
01:06:02 <shachaf> Did that code compile in the past?
01:06:56 <shachaf> Hmm, I guess I see what it's trying to do.
01:07:17 × norias quits (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 268 seconds)
01:07:36 neurocyte57 joins (~neurocyte@user/neurocyte)
01:07:46 <fYnch> it did, I'm the origonal author but I haven't looked at it in 7 years so i dont even remember why UnDBConnection was needed :|
01:09:32 <shachaf> Is it used anywhere else?
01:09:43 <shachaf> I haven't used any of these extensions in years.
01:09:55 <shachaf> Maybe you can make UnDBConnection a standalone type family or something? I don't know how you're using it.
01:10:00 Nahra joins (~user@static.161.95.99.88.clients.your-server.de)
01:11:16 × neurocyte5 quits (~neurocyte@user/neurocyte) (Ping timeout: 246 seconds)
01:14:08 <fYnch> hey all, i'm trying to update an older project (roughly 7 years old) that uses type families and I'm getting a type error here https://paste.tomsmeding.com/qkCiOvglhttps://github.com/fuag15/yaskl/blob/master/src/Yaskl/PostgreSQL/Database.hs
01:16:12 × hegstal quits (~hegstal@2a02:c7f:7604:8a00:b401:1d9:cf08:e9d0) (Remote host closed the connection)
01:16:42 <shachaf> Well, that code doesn't seem to be using it.
01:18:36 × sleym quits (~sleym@185.124.240.166) (Read error: Connection reset by peer)
01:21:04 <fYnch> yeah, I don't get why i need this UnDBConnection (DBConnection a)
01:21:10 warnz joins (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
01:21:12 <fYnch> going to try removing it and just us DBConnection a
01:21:30 × ph88^ quits (~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5) (Ping timeout: 272 seconds)
01:23:56 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
01:24:00 <fYnch> huh, without it it cant match my DBConnection type with the type i supply
01:24:55 × xff0x quits (~xff0x@2001:1a81:52c9:c400:e0d8:2879:2fd2:a436) (Ping timeout: 272 seconds)
01:26:08 × leeb_ quits (~leeb@KD111239153087.au-net.ne.jp) (Quit: WeeChat 3.1)
01:26:11 × warnz quits (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Ping timeout: 272 seconds)
01:26:26 xff0x joins (~xff0x@2001:1a81:5302:7b00:7b9e:b34d:db0e:110c)
01:28:31 <fYnch> i wrote this origonally in 2014, I think i need to update it to use TypeFamilyDependencies
01:28:57 <geekosaur> I'm a bit surprised that ever worked given the dangling "b"
01:32:33 <fYnch> welp, time to pay the piper for me. This was when i was first learning haskell and I never really understood how it was interacting with the compiler, it looks like theres now a cleaner way to tell it
01:32:47 <fYnch> it looks like something like this and reworking the rest of the source to play with it will get the same result
01:34:49 <fYnch> nope, reading through the ghc docs i'm lost again. I think type famly dependencies is what i'm after but it looks like the syntax has changed a bit, rtfm'ing
01:34:56 spruit11 joins (~quassel@2a02:a467:ccd6:1:f4be:52a3:d576:1567)
01:38:48 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
01:40:19 <shachaf> I don't know what the code is trying to accomplish.
01:41:29 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:44:19 <fYnch> i'm still wrestling with it I think i spoke up too soon. I'm going to wrestle more till sunday evening and come back with a better understanding of how it was working. I believe this was origonally compiling against ghc 7.x
01:45:41 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
01:45:51 fizbin_ joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
01:47:25 ph88^ joins (~ph88@2a02:8109:9e00:7e5c:413d:a4c8:b301:6764)
01:47:58 norias joins (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
01:49:12 warnz joins (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
01:51:13 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:65ac:7b6b:22bc:47ee) (Ping timeout: 250 seconds)
01:53:23 × warnz quits (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Ping timeout: 250 seconds)
01:58:42 × oxide quits (~lambda@user/oxide) (Ping timeout: 240 seconds)
01:58:42 × fizbin_ quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
02:00:59 oxide joins (~lambda@user/oxide)
02:02:15 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
02:03:14 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
02:05:27 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
02:06:31 dajoer joins (~david@user/gvx)
02:11:16 justsomeguy joins (~justsomeg@user/justsomeguy)
02:14:16 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
02:15:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
02:16:27 × juhp quits (~juhp@128.106.188.66) (Quit: juhp)
02:16:41 juhp joins (~juhp@128.106.188.66)
02:19:07 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
02:21:15 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3-dev)
02:22:41 warnz joins (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
02:22:48 × warnz quits (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Remote host closed the connection)
02:24:39 myShoggoth joins (~myShoggot@75.164.29.44)
02:25:10 <jophish> the Dependencies section on Hackage doesn't seem to include custom setup dependencies
02:25:18 <jophish> (or tests or benchmarks which I agree with)
02:26:51 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
02:28:44 × zebrag_ quits (~chris@user/zebrag) (Quit: Konversation terminated!)
02:29:30 × myShoggoth quits (~myShoggot@75.164.29.44) (Ping timeout: 258 seconds)
02:30:15 myShoggoth joins (~myShoggot@75.164.29.44)
02:32:29 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:32:29 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (platinum.libera.chat (Nickname regained by services)))
02:32:29 finn_elija is now known as FinnElija
02:32:43 × TranquilEcho quits (~grom@user/tranquilecho) (Quit: WeeChat 2.8)
02:39:01 × hammock quits (~Hammock@2600:1700:19a1:3330::625) (Ping timeout: 272 seconds)
02:41:11 <fYnch> yeah, that was wierd, i don't know what i was smoking or eating or drinking when making that choice, but theres no reason for that wierd constraint on the class with TypeFamilyDependencies
02:41:23 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
02:41:25 allbery_b joins (~geekosaur@xmonad/geekosaur)
02:41:34 <fYnch> shachaf: ^
02:41:58 × egoist1 quits (~egoist@186.235.82.7) (Quit: WeeChat 3.2)
02:42:01 <fYnch> shachaf: thanks for looking at it earlier, I may never know how it ended up being that way
02:43:54 × fYnch quits (~mike@174.127.249.180) (Remote host closed the connection)
02:45:56 Codaraxis_ joins (~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
02:48:25 <sm[m]> mason0: ok, that's good to know. It would be strange if time did not do the right thing!
02:49:16 × Codaraxis quits (~Codaraxis@user/codaraxis) (Ping timeout: 244 seconds)
02:52:42 × td_ quits (~td@94.134.91.180) (Ping timeout: 272 seconds)
02:53:55 td_ joins (~td@muedsl-82-207-238-164.citykom.de)
02:58:23 × stevenxl quits (~stevenlei@174.128.179.103) (Ping timeout: 250 seconds)
03:02:21 stevenxl joins (~stevenlei@174.128.182.196)
03:03:43 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
03:09:22 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
03:10:31 × norias quits (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 258 seconds)
03:14:25 <Boarders> Are there any papers that explain how the haskell runtime system works in some high level way?
03:15:31 <Boarders> the one I found is "Runtime support for multicore haskell" but interested in other resources
03:18:55 teaSlurper joins (~chris@81.96.113.213)
03:22:29 <hololeap> Boarders: there's various resources for different aspects of it. is there anything in particular you're interested in?
03:22:57 × bontaq quits (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 268 seconds)
03:27:25 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 250 seconds)
03:27:42 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
03:28:14 <Boarders> I'm kind of interested in how to write a RTS for a toy language myself so mostly just looking to pick up some wisdom
03:28:28 <Boarders> @hololeap
03:28:29 <lambdabot> Unknown command, try @list
03:29:53 × jespada quits (~jespada@90.254.247.46) (Ping timeout: 265 seconds)
03:30:18 <ezzieyguywuf> do y'all know of any tools like ghcid that exist for c++ development?
03:31:35 jespada joins (~jespada@90.254.247.46)
03:39:07 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
03:39:11 thunderfish is now known as mnrmnaugh
03:40:03 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
03:41:19 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:44:02 × mason0 quits (~bc817c21@1582020-static.lxtnkya3.metronetinc.net) (Quit: QUIT)
03:48:36 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:51:29 <monochrom> I don't actually know, but my impression is that in C and C++, if people get seriously enough they use full-blown CI. (The whole point of inventing CI, I would think?)
03:53:27 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 258 seconds)
03:54:13 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds)
03:54:30 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
03:56:43 <hololeap> Boarders: idk, it's pretty complex. there's the garbage collector, thunks, parallelism, to name a few moving parts. take a look at `ghc +RTS --help` to get an idea what options are there for the runtime
04:00:01 × jolly quits (~jolly@208.180.97.158) (Quit: Connection closed)
04:00:54 × zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection)
04:02:11 zaquest joins (~notzaques@5.128.210.178)
04:12:06 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:12:17 × stevenxl quits (~stevenlei@174.128.182.196) (Ping timeout: 268 seconds)
04:13:56 nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
04:14:49 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
04:19:31 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 258 seconds)
04:20:40 <janus> ezzieyguywuf: i have heard https://github.com/inotify-tools/inotify-tools recommended, you can use it to launch make
04:21:16 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
04:21:52 dunkeln joins (~dunkeln@188.71.193.140)
04:23:17 <ezzieyguywuf> janus: thanks for the tip
04:23:18 warnz joins (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
04:23:21 × nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
04:27:26 × warnz quits (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Ping timeout: 244 seconds)
04:30:53 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
04:31:43 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
04:32:09 × Scotty_Trees quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
04:37:11 dyeplexer joins (~dyeplexer@user/dyeplexer)
04:42:31 × myShoggoth quits (~myShoggot@75.164.29.44) (Ping timeout: 258 seconds)
04:45:26 × derelict quits (~derelict@user/derelict) (Ping timeout: 272 seconds)
04:46:21 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
04:46:42 derelict joins (~derelict@user/derelict)
05:01:16 × MorrowM quits (~MorrowM_@147.161.9.7) (Ping timeout: 252 seconds)
05:08:21 Codaraxis__ joins (~Codaraxis@193.32.126.161)
05:12:17 × Codaraxis_ quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 250 seconds)
05:16:04 × nerdypepper quits (~nerdypepp@152.67.162.71) (Quit: bye)
05:18:16 nerdypepper joins (~nerdypepp@152.67.162.71)
05:18:35 × nerdypepper quits (~nerdypepp@152.67.162.71) (Client Quit)
05:18:50 × AgentM quits (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
05:18:55 × jenkems quits (~jenkems@226.148.192.35.bc.googleusercontent.com) (Quit: leaving)
05:19:20 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
05:19:56 <sm[m]> ezzieyguywuf: entr (search for entrproject); visual studio / JetBrains ide probably
05:20:44 × juhp quits (~juhp@128.106.188.66) (Ping timeout: 268 seconds)
05:22:08 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
05:22:21 Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com)
05:28:18 Guest9 joins (~Guest9@103.86.19.137)
05:28:55 nerdypepper joins (~nerdypepp@152.67.162.71)
05:32:39 × xff0x quits (~xff0x@2001:1a81:5302:7b00:7b9e:b34d:db0e:110c) (Ping timeout: 250 seconds)
05:33:36 xff0x joins (~xff0x@2001:1a81:5302:7b00:933b:b446:f13f:917e)
05:39:39 chomwitt joins (~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4)
05:42:55 × Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
05:47:38 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 265 seconds)
05:47:56 MQ-17J joins (~MQ-17J@8.21.10.15)
05:49:16 × argento quits (~argent0@168-227-97-29.ptr.westnet.com.ar) (Remote host closed the connection)
05:55:51 hmmmas joins (~chenqisu1@183.217.200.246)
05:58:16 × dunkeln quits (~dunkeln@188.71.193.140) (Ping timeout: 272 seconds)
05:59:09 × nerdypepper quits (~nerdypepp@152.67.162.71) (Quit: bye)
06:02:06 nerdypepper joins (~nerdypepp@152.67.162.71)
06:05:14 <Cajun> so im trying to profile a program and i compile with `-prof` and use `-hc`, but when i convert it to postscript it is entirely empty. im running it through cabal with --enable-library-profiling because it fails to compile otherwise (the compiler says to put that flag). how can i get it to correctly show the heap?
06:13:15 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
06:14:40 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
06:16:41 pera joins (~pera@user/pera)
06:17:29 smokey991 joins (sid369395@id-369395.brockwell.irccloud.com)
06:25:57 × xff0x quits (~xff0x@2001:1a81:5302:7b00:933b:b446:f13f:917e) (Ping timeout: 250 seconds)
06:26:46 xff0x joins (~xff0x@2001:1a81:5302:7b00:dba5:5569:ccc4:c781)
06:26:49 × Guest9 quits (~Guest9@103.86.19.137) (Ping timeout: 250 seconds)
06:28:40 × pera quits (~pera@user/pera) (Quit: leaving)
06:30:18 gehmehgeh joins (~user@user/gehmehgeh)
06:37:03 juhp joins (~juhp@bb116-14-48-29.singnet.com.sg)
06:42:08 × MQ-17J quits (~MQ-17J@8.21.10.15) (Ping timeout: 268 seconds)
06:42:10 × bitmapper quits (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
06:42:29 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
06:42:44 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:45:34 dunkeln_ joins (~dunkeln@188.71.193.140)
06:46:10 qbt joins (~edun@user/edun)
06:47:37 × wei2912 quits (~wei2912@112.199.250.21) (Ping timeout: 250 seconds)
06:48:34 × qbt quits (~edun@user/edun) (Client Quit)
06:55:35 × nerdypepper quits (~nerdypepp@152.67.162.71) (Quit: bye)
06:55:35 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
06:57:30 laguneucl joins (~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4)
06:58:18 × chomwitt quits (~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 244 seconds)
06:58:20 elf_fortrez joins (~elf_fortr@adsl-72-50-4-54.prtc.net)
07:02:46 nerdypepper joins (~nerdypepp@152.67.162.71)
07:07:06 wei2912 joins (~wei2912@112.199.250.21)
07:11:10 mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
07:12:29 hendursaga joins (~weechat@user/hendursaga)
07:12:38 takuan joins (~takuan@178-116-218-225.access.telenet.be)
07:13:58 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
07:15:14 lavaman joins (~lavaman@98.38.249.169)
07:16:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
07:17:07 arjun joins (~user@user/arjun)
07:18:24 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
07:19:35 v01d4lph4 joins (~v01d4lph4@122.160.65.250)
07:19:35 × v01d4lph4 quits (~v01d4lph4@122.160.65.250) (Changing host)
07:19:35 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
07:19:58 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
07:22:07 acidjnk joins (~acidjnk@p200300d0c72b9545f908228849627247.dip0.t-ipconnect.de)
07:25:04 Gurkenglas joins (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
07:26:47 × arjun quits (~user@user/arjun) (Remote host closed the connection)
07:35:32 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
07:36:06 teaSlurper joins (~chris@81.96.113.213)
07:36:35 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 250 seconds)
07:40:44 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 265 seconds)
07:40:53 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:41:34 Guest9 joins (~Guest9@103.86.19.137)
07:42:26 <Guest9> " something is intact=still same", how to represent this statement in diagram/sketch form?
07:42:29 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
07:48:10 × dajoer quits (~david@user/gvx) (Quit: leaving)
07:49:12 TFL joins (~user@64.114.96.246)
07:53:03 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
07:58:13 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
08:00:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:01:05 × dmang quits (~dmang@047-032-148-170.res.spectrum.com) (Ping timeout: 258 seconds)
08:02:19 dmang joins (~dmang@user/dmang)
08:07:28 × dmang quits (~dmang@user/dmang) (Ping timeout: 272 seconds)
08:09:46 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 244 seconds)
08:14:48 <tomsmeding> Is there a sensible precedence value for the '->' type construction operator?
08:14:50 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Remote host closed the connection)
08:15:00 dmang joins (~dmang@user/dmang)
08:15:16 <tomsmeding> in the same list as where '+' has precedence value 6
08:18:04 lavaman joins (~lavaman@98.38.249.169)
08:18:35 geekosaur joins (~geekosaur@xmonad/geekosaur)
08:19:14 <ephemient> -∞?
08:20:46 × allbery_b quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 272 seconds)
08:20:49 <tomsmeding> well, 'it + 1' should have a sensible value that is distinct from it
08:21:01 <tomsmeding> given that I would like to use it in a showsPrec-like setting :p
08:22:04 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:22:05 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
08:22:09 <tomsmeding> like, it doesn't matter much because the same expression cannot currently contain arithmetic operators, but for consistency's sake I generally like to give stuff Haskell precedence levels if possible
08:22:33 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 258 seconds)
08:33:43 hendursaga joins (~weechat@user/hendursaga)
08:36:36 × Guest9 quits (~Guest9@103.86.19.137) (Quit: Connection closed)
08:44:58 <juri_> Cajun: is your program terminating normally? I have found that when i control-C a program, sometimes the profile output has a partial frame at the end that i must cut off, for the tools to work.
08:46:05 lavaman joins (~lavaman@98.38.249.169)
08:46:21 <Cajun> its terminating normally, the terminal doesnt specify an abnormal exit code afaik
08:46:40 <Cajun> i am on WSL if that matters for the profiling, but i dont image it does
08:47:25 × elf_fortrez quits (~elf_fortr@adsl-72-50-4-54.prtc.net) (Ping timeout: 246 seconds)
08:50:26 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
08:51:39 fef joins (~thedawn@user/thedawn)
08:54:33 × dunkeln_ quits (~dunkeln@188.71.193.140) (Ping timeout: 244 seconds)
08:56:43 dunkeln_ joins (~dunkeln@94.129.65.28)
09:02:22 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 246 seconds)
09:03:31 Feuermagier joins (~Feuermagi@user/feuermagier)
09:03:40 × maerwald quits (~maerwald@mail.hasufell.de) (Changing host)
09:03:40 maerwald joins (~maerwald@user/maerwald)
09:03:57 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
09:06:13 elf_fortrez joins (~elf_fortr@adsl-72-50-6-22.prtc.net)
09:07:40 Schrostfutz joins (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de)
09:09:16 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
09:09:49 × MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
09:10:05 MidAutumnMoon joins (~MidAutumn@user/midautumnmoon)
09:10:36 <Schrostfutz> Hi, I find myself relatively often trying to combine multiple predicates into one, and noticing that it's not so simple. Both joining the predicates into one function only works via lifting the && operator into function application (?), or applying a list of functions ([(a -> b)] -> a -> [b]) to a value and then combining the result, both of which are not readily available in the standard library which I find weird, since the
09:10:36 <Schrostfutz> use-case seems quite common to me, especially in a functional language. Or is that assumption wrong?
09:15:16 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
09:18:04 <ChaiTRex> :t flip (all . flip id)
09:18:05 <lambdabot> Foldable t => t (b -> Bool) -> b -> Bool
09:18:43 <ChaiTRex> Schrostfutz: ^
09:18:48 × hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
09:19:13 <Schrostfutz> What
09:19:17 <shachaf> Yikes, don't write that.
09:19:23 <Schrostfutz> *What's the reason for the `flip id`?
09:19:43 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Ping timeout: 250 seconds)
09:19:49 <ChaiTRex> You could also write: \ fs x -> and . map (\ f -> f x) $ fs
09:20:17 <shachaf> That doesn't even seem to be addressng the question.
09:21:44 <Schrostfutz> The closest I have found so far is `fmap ($ val) predicates`, but that seems unintuitive to me (maybe because I'm a beginner, but I was hoping I was overlooking the nice, canonical solution to this.
09:22:39 <shachaf> map ($ x) list is reasonable standard.
09:23:16 <shachaf> Some people would probably suggest "sequence :: [a -> b] -> a -> [b]"
09:23:22 <shachaf> But that's probably not that helpful.
09:27:00 <Schrostfutz> shachaf: What sequence is that, the one I could find has the type `t (m a) -> m (t a)`
09:27:16 <shachaf> That one.
09:27:37 <shachaf> And that sort of confusion is why I wouldn't suggest it.
09:30:58 <Schrostfutz> shachaf: Alright, thanks! Do you have a pointer for a solution for the solution that feels more functional to me, combinding a list of predicates into a single one?: foldl1 (&&) predicates
09:32:14 × dunkeln_ quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
09:32:47 Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
09:33:07 dunkeln_ joins (~dunkeln@94.129.65.28)
09:34:39 <ChaiTRex> Schrostfutz: Going with your solution, you can try: all ($ val) predicates
09:34:42 <ChaiTRex> @src all
09:34:42 <lambdabot> all p = and . map p
09:34:51 <ChaiTRex> @src and
09:34:51 <lambdabot> and = foldr (&&) True
09:35:53 <dibblego> sequence predicates
09:36:16 <dibblego> oh sorry, that discussion has already been had
09:37:14 <Schrostfutz> ChaiTRex: Thanks!
09:37:24 gensyst joins (gensyst@user/gensyst)
09:38:01 <gensyst> I'm looking for a queue structure with min/max query support: https://www.geeksforgeeks.org/design-a-queue-data-structure-to-get-minimum-or-maximum-in-o1-time/
09:38:12 <gensyst> Are you aware of any existing one for Haskell?
09:38:28 × dunkeln_ quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
09:40:21 dunkeln_ joins (~dunkeln@94.129.65.28)
09:40:59 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
09:41:51 <juri_> I can potentially call error in any one of 200 places in my program. *sigh*
09:43:48 <juri_> I've got my stan warnings down to 180, from over 500, so i guess that's progress.
09:44:42 × dunkeln_ quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
09:45:37 dunkeln_ joins (~dunkeln@94.129.65.28)
09:49:18 takuan joins (~takuan@178-116-218-225.access.telenet.be)
09:50:46 × dunkeln_ quits (~dunkeln@94.129.65.28) (Read error: Connection reset by peer)
09:51:19 dunkeln_ joins (~dunkeln@94.129.65.28)
09:54:34 Codaraxis_ joins (~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
09:54:51 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:58:29 × Codaraxis__ quits (~Codaraxis@193.32.126.161) (Ping timeout: 265 seconds)
10:02:25 m7zs3gzw joins (~m7zs3gzw@178.155.6.220)
10:03:05 × xsperry quits (~as@user/xsperry) (Remote host closed the connection)
10:05:04 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
10:05:07 Codaraxis__ joins (~Codaraxis@193.32.126.154)
10:08:41 × m7zs3gzw quits (~m7zs3gzw@178.155.6.220) (Read error: Connection reset by peer)
10:08:57 × Codaraxis_ quits (~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 244 seconds)
10:11:32 × dunkeln_ quits (~dunkeln@94.129.65.28) (Remote host closed the connection)
10:12:15 gehmehgeh joins (~user@user/gehmehgeh)
10:16:56 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
10:17:13 dunkeln_ joins (~dunkeln@94.129.65.28)
10:17:22 × elf_fortrez quits (~elf_fortr@adsl-72-50-6-22.prtc.net) (Ping timeout: 246 seconds)
10:17:47 × Schrostfutz quits (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
10:21:59 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Ping timeout: 272 seconds)
10:22:52 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
10:22:54 allbery_b joins (~geekosaur@xmonad/geekosaur)
10:23:24 × feliix42 quits (~felix@gibbs.uberspace.de) (Quit: ZNC 1.8.2 - https://znc.in)
10:23:36 feliix42 joins (~felix@gibbs.uberspace.de)
10:24:15 dhil joins (~dhil@195.213.192.47)
10:24:40 × dunkeln_ quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
10:25:32 ph88 joins (~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5)
10:26:38 dunkeln joins (~dunkeln@188.71.193.140)
10:26:55 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
10:31:17 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
10:32:30 takuan joins (~takuan@178-116-218-225.access.telenet.be)
10:39:08 × noctux quits (~noctux@user/noctux) (Ping timeout: 252 seconds)
10:40:23 noctux joins (~noctux@user/noctux)
10:45:17 × chexum quits (~chexum@gateway/tor-sasl/chexum) (Ping timeout: 244 seconds)
10:45:52 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
10:47:42 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
10:51:17 kayprish joins (~kayprish@46.240.143.86)
10:51:46 yoctocell joins (~user@h87-96-130-155.cust.a3fiber.se)
10:55:03 × dunkeln quits (~dunkeln@188.71.193.140) (Ping timeout: 250 seconds)
11:00:14 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:03:08 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
11:03:22 × fef quits (~thedawn@user/thedawn) (Ping timeout: 244 seconds)
11:03:28 geekosaur joins (~geekosaur@xmonad/geekosaur)
11:03:41 blackfield parts (~blackfiel@85.255.4.218) ()
11:03:42 v01d4lph4 joins (~v01d4lph4@user/v01d4lph4)
11:03:47 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
11:05:28 × allbery_b quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 258 seconds)
11:05:58 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:08:03 × xff0x quits (~xff0x@2001:1a81:5302:7b00:dba5:5569:ccc4:c781) (Ping timeout: 250 seconds)
11:08:20 xff0x joins (~xff0x@185.65.135.235)
11:08:36 × v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 272 seconds)
11:12:36 Sornaensis joins (~Sornaensi@077213194163.dynamic.telenor.dk)
11:15:57 fef joins (~thedawn@user/thedawn)
11:18:51 dunkeln_ joins (~dunkeln@188.71.193.140)
11:20:46 × xff0x quits (~xff0x@185.65.135.235) (Ping timeout: 252 seconds)
11:21:42 parzema joins (~parzema@124.188.206.3)
11:22:30 xff0x joins (~xff0x@2001:1a81:5302:7b00:dba5:5569:ccc4:c781)
11:25:17 <parzema> How would you decrypt encrypted data (in hex format) in Salsa20 cipher? If you have the key and nonce and the encrypted data?
11:25:24 <parzema> In Haskell
11:26:39 <hpc> same way i would in any other language - see if there's a package or command-line utility i can take advantage of
11:26:51 <hpc> and if neither of those work, implement the algorithm
11:27:29 <hpc> @hoogle Salsa20
11:27:29 <lambdabot> Crypto.Nettle.Ciphers data SALSA20
11:27:29 <lambdabot> Crypto.Nettle.Ciphers data ESTREAM_SALSA20
11:27:35 × hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.)
11:27:36 <parzema> https://hackage.haskell.org/package/Z-Botan-0.4.0.0/docs/Z-Crypto-Cipher.html
11:28:45 blackfield joins (~blackfiel@85.255.4.218)
11:29:10 <hpc> looks like you found it then
11:29:34 <parzema> hpc it doesnt show any examples
11:29:55 <sshine> typical
11:30:09 <parzema> encrypting or decrypting examples
11:31:01 <sshine> parzema, so there's decryptBlocks, and a hint that setBlockCipherKey must be called.
11:31:55 <hpc> so what you're really asking is how to use that particular package?
11:31:57 <hpc> https://hackage.haskell.org/package/Z-Botan-0.4.0.0/docs/Z-Crypto-Cipher.html#v:runStreamCipher
11:32:11 <hpc> there's an example with the BIO function below that, maybe adapt that?
11:32:36 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
11:33:22 <hpc> yeah, it looks like you're support to create an abstract cipher thing, set some stuff up with it, and then call runStreamCipher on your data
11:34:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
11:36:49 <sshine> parzema, I suppose decryption depends on how it was encrypted (block or stream).
11:37:21 <sshine> parzema, are you both in charge of encrypting and decrypting? or are you looking to decrypt something that was already encrypted by others in a particular way?
11:37:29 <parzema> just decrypting
11:37:39 <parzema> the latter
11:39:23 × TFL quits (~user@64.114.96.246) (Quit: ERC (IRC client for Emacs 27.2))
11:39:58 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
11:41:51 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 250 seconds)
11:41:56 <sshine> parzema, so since Salsa20 is a StreamCipherType, I suppose the streamCipherBIO example is a good starting point.
11:42:46 × noctux quits (~noctux@user/noctux) (Ping timeout: 252 seconds)
11:42:58 <sshine> parzema, it looks like you need to specify the input for setStreamCipherKey and setStreamCipherIV.
11:43:06 <oak-> If I would start implementing crypto stuff with Haskell, I would first have a look in the cryptonite-library, which seems to be quite state-of-the-art
11:43:24 __monty__ joins (~toonn@user/toonn)
11:45:24 jumper149 joins (~jumper149@80.240.31.34)
11:46:15 <jumper149> Hi, I was wondering if there is a way to tell, if the dependencies in my cabal file are not up-to-date with Hackage anymore.
11:46:50 geekosaur joins (~geekosaur@xmonad/geekosaur)
11:46:58 <oak-> It seems to support Salsa20 through https://hackage.haskell.org/package/cryptonite-0.29/docs/Crypto-Cipher-Salsa.html and the block cipher example could probably be easiliy modified to use Salsa20 instead of AES256 https://hackage.haskell.org/package/cryptonite-0.29/docs/Crypto-Tutorial.html#g:3
11:49:35 dogu joins (~dogu@84.51.63.109)
11:50:37 × dogu quits (~dogu@84.51.63.109) (Remote host closed the connection)
11:52:38 noctux joins (~noctux@user/noctux)
11:53:47 <maerwald> jumper149: check out `cabal-bounds`
11:54:58 <parzema> oak- https://pastebin.com/8urm6mE6
11:55:02 <Profpatsch> jumper149: henlo
11:55:08 <parzema> Seems alot easier/shiorter to do it in python
11:55:34 <parzema> sshine
11:56:09 × euandreh quits (~euandreh@2804:14c:33:9fe5:c1e6:8279:92e9:57ec) (Ping timeout: 250 seconds)
11:56:20 <parzema> thought it might have been shorter in haskell
11:58:56 <jumper149> Profpatsch: hehe hello :)
11:59:48 × noctux quits (~noctux@user/noctux) (Ping timeout: 265 seconds)
11:59:54 teaSlurper joins (~chris@81.96.113.213)
12:01:14 <sshine> parzema, ease and brevity depend on prior experience.
12:02:50 <oak-> Well it isn't much more complicated in Haskell, first you call the initialize-function in Crypto.Cipher.Salsa with 20 rounds, key and nonce, and you get the cipher context, and then you call the combine function with your data and the cipher context
12:04:18 × fef quits (~thedawn@user/thedawn) (Quit: Leaving)
12:05:27 justsomeguy joins (~justsomeg@user/justsomeguy)
12:07:35 × justsomeguy quits (~justsomeg@user/justsomeguy) (Client Quit)
12:07:35 × azeem quits (~azeem@dynamic-adsl-94-34-9-28.clienti.tiscali.it) (Read error: Connection reset by peer)
12:08:37 azeem joins (~azeem@dynamic-adsl-94-34-9-28.clienti.tiscali.it)
12:09:06 × Sornaensis quits (~Sornaensi@077213194163.dynamic.telenor.dk) (Ping timeout: 258 seconds)
12:13:31 chisui joins (~chisui@200116b8665ca200b4ead5d4214f5a59.dip.versatel-1u1.de)
12:18:15 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
12:22:57 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Ping timeout: 272 seconds)
12:23:28 Guest16 joins (~Guest16@2409:4062:2d0b:99a1:76c8:3b6:4cad:7132)
12:23:43 <Guest16> Sup
12:24:11 warnz joins (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
12:28:04 mib_l4fizy joins (~9d298f71@ircip2.mibbit.com)
12:28:32 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
12:28:39 × warnz quits (~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Ping timeout: 250 seconds)
12:29:25 × dunkeln_ quits (~dunkeln@188.71.193.140) (Ping timeout: 258 seconds)
12:30:13 <mib_l4fizy> Hi..I need help regarding this: https://paste.tomsmeding.com/cWHnB2OJ
12:33:09 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
12:33:53 <chisui> Please include the place where you called `print` in your example
12:34:08 × Guest16 quits (~Guest16@2409:4062:2d0b:99a1:76c8:3b6:4cad:7132) (Quit: Client closed)
12:36:07 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: gone to sleep. ZZZzzz…)
12:36:36 × mib_l4fizy quits (~9d298f71@ircip2.mibbit.com) (Quit: https://mibbit.com Online IRC Client)
12:36:44 dunkeln joins (~dunkeln@188.71.193.140)
12:38:40 reedlepee joins (~9d298f71@ircip2.mibbit.com)
12:39:11 <reedlepee> HI...could anyone help me with this: https://paste.tomsmeding.com/cWHnB2OJ
12:40:30 <chisui> reedlepee The error is not in the code you shared. Please share the code that calls `print`
12:40:55 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
12:41:32 teaSlurper joins (~chris@81.96.113.213)
12:42:17 <reedlepee> I'm sorry. I did not know I had to add a print function. This was my entire code...I thought Haskell was similar to Gofer and just slightly modified the lines
12:42:33 fef joins (~thedawn@user/thedawn)
12:42:35 × derelict quits (~derelict@user/derelict) (Quit: WeeChat 3.2)
12:43:51 derelict joins (~derelict@user/derelict)
12:43:58 <chisui> In what environment is your code compiled?
12:44:24 <chisui> Are you compiling from the command line?
12:45:46 <reedlepee> @chisui no...I created a file, pasted these lines and loaded it in ghci
12:45:46 <lambdabot> Unknown command, try @list
12:46:08 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 272 seconds)
12:46:18 <sshine> reedlepee, ah, collatz :) https://github.com/exercism/haskell/blob/main/exercises/practice/collatz-conjecture/examples/success-standard/src/CollatzConjecture.hs
12:47:15 stevenxl joins (~stevenlei@174.128.182.86)
12:47:17 <reedlepee> Thanks! I realize I've a lot to learn and just can't modify code for other languages and expect it to work
12:47:25 lavaman joins (~lavaman@98.38.249.169)
12:47:59 <chisui> ARGH, forgot to read the error message completely.
12:50:57 <reedlepee> chisui nvm...i found out what was wrong...I had to replace the "/" function with div..for rounding off as integers...now it's working :)
12:51:02 <sshine> reedlepee, instead of 'mod n 2 == 1', then 'odd n'
12:51:33 <sshine> reedlepee, you can also use `quot` instead of `div` since you don't care about negative rounding :)
12:51:37 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
12:52:07 <reedlepee> sshine oh yeah you're right hehe..thanks!
12:53:03 <reedlepee> haskell is indeed very similar to gofer..now i think all FP might be similar to each other...thanks again guys..see ya!
12:53:27 reedlepee parts (~9d298f71@ircip2.mibbit.com) ()
12:53:49 <sshine> reedlepee, the 'n : ...' part belongs to the recursion pattern, but the '3*n + 1' vs. 'n `quot` 2' belongs to generating the next number. try and make a helper function: 'next n = if even n then n `quot` 2 else 3*n+1' and use 'next' in 'pink' :)
12:54:26 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
12:55:31 × feliix42 quits (~felix@gibbs.uberspace.de) (Ping timeout: 250 seconds)
12:55:53 × AWizzArd quits (~code@user/awizzard) (Ping timeout: 272 seconds)
13:01:06 lavaman joins (~lavaman@98.38.249.169)
13:03:18 × gensyst quits (gensyst@user/gensyst) (Quit: Leaving)
13:03:40 × Alex_test quits (~al_test@178.34.163.142) (Quit: ;-)
13:04:07 AlexZenon parts (~alzenon@178.34.163.142) ()
13:04:19 × AlexNoo quits (~AlexNoo@178.34.163.142) (Quit: Leaving)
13:05:17 × killsushi quits (~killsushi@user/killsushi) (Quit: Leaving)
13:08:08 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
13:10:06 AgentM joins (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
13:11:16 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
13:11:28 × shapr quits (~user@2601:7c0:8180:89d0:903c:7e54:945b:c68c) (Ping timeout: 272 seconds)
13:17:01 × acidjnk quits (~acidjnk@p200300d0c72b9545f908228849627247.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
13:18:12 teaSlurper joins (~chris@81.96.113.213)
13:19:48 × Scotty_Trees quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
13:22:20 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3-dev)
13:22:52 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 272 seconds)
13:23:58 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
13:24:53 AlexZenon joins (~alzenon@178.34.163.142)
13:27:23 Alex_test joins (~al_test@178.34.163.142)
13:27:48 Deide joins (~Deide@wire.desu.ga)
13:27:48 × Deide quits (~Deide@wire.desu.ga) (Changing host)
13:27:48 Deide joins (~Deide@user/deide)
13:28:17 AlexNoo joins (~AlexNoo@178.34.163.142)
13:32:18 × is7s quits (~is7s@2a01:4b00:895f:3d00:fd08:7a4b:2db3:57e3) (Quit: Client closed)
13:39:50 slowButPresent joins (~slowButPr@user/slowbutpresent)
13:40:30 en30 joins (~en30@p6356230-ipngn31101marunouchi.tokyo.ocn.ne.jp)
13:40:45 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Client Quit)
13:41:05 slowButPresent joins (~slowButPr@user/slowbutpresent)
13:41:28 Schrostfutz joins (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de)
13:42:30 × neurocyte57 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
13:46:58 xsperry joins (~as@user/xsperry)
13:49:48 hegstal_ joins (~hegstal@2a02:c7f:7604:8a00:1f42:2755:1fbb:af5c)
13:50:01 × wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal)
13:53:28 hegstal_ is now known as hegstal
13:57:25 <dmj`> shouldn't reportError show a compilation failure message, not just "compilation failed"
14:00:03 teaSlurper joins (~chris@81.96.113.213)
14:03:31 × ukari quits (~ukari@user/ukari) (Remote host closed the connection)
14:04:00 ukari joins (~ukari@user/ukari)
14:04:29 bontaq joins (~user@ool-18e47f8d.dyn.optonline.net)
14:04:30 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
14:04:36 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:04:54 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 268 seconds)
14:09:28 TranquilEcho joins (~grom@user/tranquilecho)
14:10:20 <TheCommieDuck> so thinking out loud; if I have something like data Foo = Foo A B C D (for some product types A-D) and data Bar = Bar A C E and then data FooStore = FooStore { _a :: IntMap A, _b :: IntMap B... _z :: IntMap Z}. I can manually make something that would function as FooStore -> IntMap {Foo or Bar}, but I was wondering if there was an automagic way or if this pattern had a name..could generic-lens
14:10:23 <TheCommieDuck> solve it?
14:11:17 keutoi joins (~keutoi@157.48.247.91)
14:12:02 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
14:14:50 geekosaur joins (~geekosaur@xmonad/geekosaur)
14:17:04 × keutoi quits (~keutoi@157.48.247.91) (Ping timeout: 265 seconds)
14:17:59 feliix42 joins (~felix@gibbs.uberspace.de)
14:18:40 keutoi joins (~keutoi@106.200.184.21)
14:19:38 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
14:20:00 <Schrostfutz> Hi, I have a problem with the following code, which should check for a given number whether it is at least 3 digits long and any of a number of predicates is true: http://sprunge.us/IetAxp?haskell. The code works, until I add the (>= 100) qualification to the last predicate. (I do it this way only for error checking, previously I tried (>= 100) `and` (<predicates>)) Now it seems to run into an endless loop, why is that?
14:21:59 <dmj`> oh nvm, its reporting now
14:24:18 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Ping timeout: 272 seconds)
14:26:24 <Schrostfutz> Ah, nvm, spotted it: my function definition yielded infinite recursion
14:27:10 zebrag joins (~chris@user/zebrag)
14:30:01 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
14:34:30 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 268 seconds)
14:34:56 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
14:37:49 myShoggoth joins (~myShoggot@75.164.29.44)
14:38:35 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
14:42:46 Gurkenglas joins (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
14:43:20 teaSlurper joins (~chris@81.96.113.213)
14:47:44 × unyu quits (~pyon@user/pyon) (Quit: WeeChat 3.2)
14:49:00 neurocyte57 joins (~neurocyte@45.136.170.248)
14:49:00 × neurocyte57 quits (~neurocyte@45.136.170.248) (Changing host)
14:49:00 neurocyte57 joins (~neurocyte@user/neurocyte)
14:58:21 mc47 joins (~mc47@xmonad/TheMC47)
14:59:44 Zorgon_ is now known as Zorgon
15:00:26 nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
15:01:55 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:02:45 × GIANTWORLDKEEPER quits (~pjetcetal@2.95.227.207) (Remote host closed the connection)
15:04:21 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
15:05:32 × nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
15:05:34 bitmapper joins (uid464869@id-464869.tooting.irccloud.com)
15:07:25 GIANTWORLDKEEPER joins (~pjetcetal@2.95.227.207)
15:07:47 × keutoi quits (~keutoi@106.200.184.21) (Quit: leaving)
15:13:40 jakalx parts (~jakalx@base.jakalx.net) ()
15:14:48 machinedgod joins (~machinedg@24.105.81.50)
15:15:04 × dunkeln quits (~dunkeln@188.71.193.140) (Ping timeout: 265 seconds)
15:20:40 vicfred joins (~vicfred@user/vicfred)
15:22:36 × myShoggoth quits (~myShoggot@75.164.29.44) (Ping timeout: 268 seconds)
15:25:08 romes87 joins (~romes@44.190.189.46.rev.vodafone.pt)
15:25:29 noctux joins (~noctux@user/noctux)
15:25:29 <romes87> hey everyone, does anyone have experience with LogicT (backtracking) ?
15:28:03 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
15:29:26 MorrowM joins (~MorrowM_@147.161.9.7)
15:29:30 jakalx joins (~jakalx@base.jakalx.net)
15:29:59 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:32:54 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 244 seconds)
15:33:55 × noctux quits (~noctux@user/noctux) (Ping timeout: 265 seconds)
15:36:53 × chisui quits (~chisui@200116b8665ca200b4ead5d4214f5a59.dip.versatel-1u1.de) (Quit: Client closed)
15:43:08 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:43:51 noctux joins (~noctux@user/noctux)
15:44:34 dunkeln_ joins (~dunkeln@188.71.193.140)
15:44:53 econo joins (uid147250@user/econo)
15:47:08 euandreh joins (~euandreh@2804:14c:33:9fe5:fe7c:a1fa:94dc:c42a)
15:47:22 Sgeo joins (~Sgeo@user/sgeo)
15:49:08 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
15:49:57 × teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection)
15:50:20 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
15:54:58 teaSlurper joins (~chris@81.96.113.213)
15:56:34 spicyrice joins (~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b)
15:56:42 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:57:47 Hanicef joins (~gustaf@78-71-43-30-no260.tbcn.telia.com)
15:59:29 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 258 seconds)
16:00:30 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 265 seconds)
16:00:49 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
16:01:48 egoist joins (~egoist@186.235.82.7)
16:06:07 hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com)
16:07:09 norias joins (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
16:12:08 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds)
16:12:42 myShoggoth joins (~myShoggot@75.164.29.44)
16:12:57 MQ-17J joins (~MQ-17J@8.21.10.15)
16:14:31 × romes87 quits (~romes@44.190.189.46.rev.vodafone.pt) (Quit: Client closed)
16:17:51 × xff0x quits (~xff0x@2001:1a81:5302:7b00:dba5:5569:ccc4:c781) (Ping timeout: 244 seconds)
16:18:42 xff0x joins (~xff0x@2001:1a81:5302:7b00:a26f:1df0:afaa:6dfd)
16:19:34 × Schrostfutz quits (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
16:21:11 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
16:21:28 × renzhi quits (~xp@2607:fa49:655f:a700::3902) (Quit: WeeChat 2.3)
16:22:10 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.2)
16:22:15 renzhi joins (~xp@2607:fa49:655f:a700::3902)
16:22:17 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
16:24:01 × en30 quits (~en30@p6356230-ipngn31101marunouchi.tokyo.ocn.ne.jp) (Quit: Connection closed)
16:25:33 nate1 joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
16:25:41 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Ping timeout: 250 seconds)
16:26:10 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
16:27:48 × euandreh quits (~euandreh@2804:14c:33:9fe5:fe7c:a1fa:94dc:c42a) (Quit: WeeChat 3.2)
16:28:06 euandreh joins (~euandreh@2804:14c:33:9fe5:fe7c:a1fa:94dc:c42a)
16:29:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
16:29:39 × euandreh quits (~euandreh@2804:14c:33:9fe5:fe7c:a1fa:94dc:c42a) (Client Quit)
16:29:59 euandreh joins (~euandreh@2804:14c:33:9fe5:fe7c:a1fa:94dc:c42a)
16:30:28 × nate1 quits (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
16:32:05 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
16:36:02 dunj3 joins (~dunj3@2001:16b8:300e:4200:61ea:91d:5230:afc8)
16:36:46 Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com)
16:41:25 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:44:54 × dhil quits (~dhil@195.213.192.47) (Ping timeout: 272 seconds)
16:46:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
16:46:55 × dunkeln_ quits (~dunkeln@188.71.193.140) (Ping timeout: 250 seconds)
16:48:23 peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
16:48:47 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:49:03 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
16:49:32 yauhsien joins (~yauhsien@61-231-57-141.dynamic-ip.hinet.net)
16:53:55 × MorrowM quits (~MorrowM_@147.161.9.7) (Ping timeout: 258 seconds)
16:55:27 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:56:28 × charukiewicz quits (~quassel@irouteince04.i.subnet.rcn.com) (Remote host closed the connection)
16:57:20 dhil joins (~dhil@80.208.56.181)
16:57:48 charukiewicz joins (~quassel@irouteince04.i.subnet.rcn.com)
16:57:56 <dminuoso> TheCommieDuck: If this was recurring, you could write generic code to do this for you.
16:58:05 <dminuoso> Or perhaps better yet TH code
17:01:08 motte_ joins (~weechat@82.131.74.160.cable.starman.ee)
17:02:31 × alex3 quits (~alex3@BSN-77-82-41.static.siol.net) (Ping timeout: 250 seconds)
17:03:53 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 258 seconds)
17:05:32 × charukiewicz quits (~quassel@irouteince04.i.subnet.rcn.com) (Quit: No Ping reply in 180 seconds.)
17:06:22 Codaraxis joins (~Codaraxis@user/codaraxis)
17:06:42 charukiewicz joins (~quassel@irouteince04.i.subnet.rcn.com)
17:09:17 × Codaraxis__ quits (~Codaraxis@193.32.126.154) (Ping timeout: 268 seconds)
17:13:18 <TheCommieDuck> I've gotten FooStore done in TH
17:13:32 <TheCommieDuck> but it still feels like someone's probably done it properly before me
17:14:13 × MQ-17J quits (~MQ-17J@8.21.10.15) (Ping timeout: 268 seconds)
17:15:05 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:15:12 × charukiewicz quits (~quassel@irouteince04.i.subnet.rcn.com) (Quit: No Ping reply in 180 seconds.)
17:16:27 charukiewicz joins (~quassel@irouteince04.i.subnet.rcn.com)
17:16:41 × alx741 quits (~alx741@181.196.69.199) (Ping timeout: 268 seconds)
17:17:05 <dminuoso> Mmm, this usage seems exotic to me.
17:17:40 alex3 joins (~alex3@BSN-77-82-41.static.siol.net)
17:18:51 <dminuoso> TheCommieDuck: How did you implement it? Turn each IntMap into a list of pairs, and then scan all intmaps in parallel?
17:19:02 <dminuoso> (or rather, scan all lists)
17:19:07 teaSlurper joins (~chris@81.96.113.213)
17:19:30 dunkeln joins (~dunkeln@188.71.193.140)
17:20:11 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
17:20:19 × mc47 quits (~mc47@xmonad/TheMC47) (Read error: Connection reset by peer)
17:20:23 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
17:20:48 <TheCommieDuck> the TH generated has each intMap field as typenameStore, and when defining a new Foo I can make a lens with functors and intmap.union
17:22:32 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
17:23:38 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 265 seconds)
17:23:53 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
17:25:48 <motte_> hi, i'm having trouble writing a function that takes a string and a type and checks whether the string can be parsed to that type. this is what i've got so far: https://paste.tomsmeding.com/cBYkcZkH
17:26:46 × spicyrice quits (~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b) (Quit: WeeChat 2.8)
17:27:13 <int-e> there's no types at runtime, so you can't pattern match on types. you can use Data.Typeable to have an explicit runtime type representation, but usually there's a better way...
17:27:14 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Ping timeout: 252 seconds)
17:27:34 <dminuoso> motte_: heh, I think what you are looking for already is readMaybe
17:27:38 <dminuoso> % :t readMaybe
17:27:39 <yahb> dminuoso: ; <interactive>:1:1: error: Variable not in scope: readMaybe
17:27:46 × talismanick quits (~user@2601:644:8502:d700::f19d) (Ping timeout: 256 seconds)
17:27:49 <dminuoso> % import Text.Read (readMaybe)
17:27:50 <yahb> dminuoso:
17:27:51 <dminuoso> % :t readMaybe
17:27:51 <yahb> dminuoso: forall {a}. Read a => String -> Maybe a
17:28:43 <motte_> well, i have the possible types in a sum type (data Type in the example)
17:28:57 <dminuoso> motte_: We can think of both the type variable `a` and the dictionary `Read a` as being term-level arguments to the function. In GHC Haskell this is really the case, except GHC will automatically fill in those arguments using inference.
17:29:22 alx741 joins (~alx741@181.196.69.41)
17:29:22 <dminuoso> So:
17:29:27 <dminuoso> % :t isJust . readMaybe
17:29:27 <yahb> dminuoso: ; <interactive>:1:10: error:; * Ambiguous type variable `a0' arising from a use of `readMaybe'; prevents the constraint `(Read a0)' from being solved.; Probable fix: use a type annotation to specify what `a0' should be.; These potential instances exist:; instance forall a. Read a => Read (ZipList a) -- Defined in `Control.Applicative'; instance forall a. Read a => Re
17:29:28 <int-e> ah, sorry, I missed the Type type
17:29:35 <int-e> or rather, its significance
17:29:50 <dmj`> motte_: it can work if you use Proxy as a witness to the type at runtime
17:30:01 <dminuoso> % :t canParse :: Read a => (Proxy a) -> String -> Bool; canParse _ = isJust . readMaybe
17:30:01 <yahb> dminuoso: ; <interactive>:1:50: error: parse error on input `;'
17:30:04 <dminuoso> dmj`: Ah you beat me
17:30:15 <dminuoso> % canParse :: Read a => (Proxy a) -> String -> Bool; canParse _ = isJust . readMaybe
17:30:15 <yahb> dminuoso: ; <interactive>:104:74: error:; * Could not deduce (Read a0) arising from a use of `readMaybe'; from the context: Read a; bound by the type signature for:; canParse :: forall a. Read a => Proxy a -> String -> Bool; at <interactive>:104:1-49; The type variable `a0' is ambiguous; These potential instances exist:; instance forall a. Read a => Re
17:30:19 <int-e> motte_: but there's nothing connecting the data constructor named Int to the type named Int, you have to make the connection yourself
17:30:25 <dmj`> dminuoso: ¯\_(ツ)_/¯
17:30:38 <dminuoso> % canParse :: forall a. Read a => (Proxy a) -> String -> Bool; canParse _ = isJust . readMaybe @a
17:30:39 <yahb> dminuoso:
17:30:41 <dminuoso> motte_: ^-
17:32:12 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
17:35:13 <motte_> hmm, which extensions does this need?
17:35:27 <motte_> RankNTypes, TypeApplications, what else?
17:35:53 Schrostfutz joins (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de)
17:36:46 <geekosaur> ScopedTypeVariables?
17:38:21 <motte_> ah, yes, got it
17:39:08 <dmj`> motte_: no rank n types needed
17:39:15 <dmj`> motte_: just STV and TA
17:39:22 <dminuoso> motte_: You can avoid the usage of TypeApplications with a type ascriptions instead. You just need ScopedTypevariables
17:40:35 <dminuoso> % canParse :: forall proxy a. Read a => proxy a -> String -> Bool; canParse _ = isJust . (readMaybe :: String -> Maybe a) -- motte_
17:40:35 <yahb> dminuoso:
17:41:12 × fef quits (~thedawn@user/thedawn) (Ping timeout: 244 seconds)
17:44:16 chexum joins (~chexum@gateway/tor-sasl/chexum)
17:44:55 <motte_> so using this function would like: canParse (Proxy :: Proxy Int) "5"
17:46:43 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 250 seconds)
17:49:25 <motte_> what if the Int is a member of a sum type and also comes from a variable?
17:49:42 × Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
17:50:37 × cheater quits (~Username@user/cheater) (Ping timeout: 250 seconds)
17:53:16 <dsal> What is the use case for `canParse`? Normally you'd just parse and if you can't, you'd know because it didn't work. If you can, you'd have the value you get from parsing.
17:53:28 <dmj`> motte_: you'll probably need an instance of Read
17:54:12 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
17:54:15 cheater joins (~Username@user/cheater)
17:54:22 × egoist quits (~egoist@186.235.82.7) (Ping timeout: 268 seconds)
17:54:54 × Hanicef quits (~gustaf@78-71-43-30-no260.tbcn.telia.com) (Quit: leaving)
17:58:01 <euandreh> I see Real World Haskell has a chapter on parsec. Are there other books that cover it?
17:58:11 <euandreh> (other than online articles, blog posts, etc.)
18:00:35 <dsal> The biggest bit of the learning curve I found for *parsec is that it's not actually that complicated and barely does anything at all... but it seems like it should be complicated and do a lot, so I also got frustrated when I couldn't find great material that explained it all.
18:00:52 egoist joins (~egoist@186.235.82.105)
18:00:55 <dsal> Then I just started reading and writing parsers.
18:01:05 × myShoggoth quits (~myShoggot@75.164.29.44) (Ping timeout: 268 seconds)
18:01:22 lavaman joins (~lavaman@98.38.249.169)
18:01:50 Jeanne-Kamikaze joins (~Jeanne-Ka@192.252.212.45)
18:02:11 <dsal> euandreh: is there a particular thing that you're stuck on?
18:03:11 × Schrostfutz quits (~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
18:05:50 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 244 seconds)
18:08:15 <euandreh> dsal: not really, I'm just interested in parsers in general, and I wanted to better learn Haskell through that.
18:09:05 <euandreh> I've picked Parsec and AttoParsec, and dive into the implementation. I could just do that, but I really like learning via books :)
18:09:21 <dsal> euandreh: Oh, then one thing that might be *super* helpful is writing your own parser from scratch. You'll learn functors and applicatives and some monads and stuff while also having lots of magic melt away.
18:10:41 <euandreh> I did write my own parser combinator library, but not yet in Haskell. I wanted to dive into the implementations to improve the error messages of my own implementation
18:11:05 <dsal> Ah. megaparsec is basically that stuff you'd write anyway, but with good error messages. :)
18:11:17 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
18:11:46 <dsal> "the implementation" is mostly just functors, applicatives, alternatives, and some simple monads (/monadfail).
18:12:00 <euandreh> Yes, MegaParsec also. I've looked at it too a bit, it seems nice
18:17:29 × dunkeln quits (~dunkeln@188.71.193.140) (Ping timeout: 258 seconds)
18:19:09 <dmj`> euandreh: http://dev.stephendiehl.com/fun/002_parsers.html
18:19:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:20:51 Guest9 joins (~Guest9@103.86.19.137)
18:26:44 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
18:27:09 <euandreh> ty
18:27:19 <dmj`> yw
18:28:49 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
18:31:18 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds)
18:31:33 ChaiTRex joins (~ChaiTRex@user/chaitrex)
18:34:55 <carmysilna> Slightly tangential, but I'm writing a parser/pretty-printer combinator library that lets you write a single syntactic description and get both a parser and a pretty-printer for free. The current impls are very bare and un-featureful so if anyone would want to help me improve them, they'd be more than welcome! https://github.com/brightly-salty/inversify
18:35:03 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
18:40:11 Ariakenom joins (~Ariakenom@c83-255-154-140.bredband.tele2.se)
18:41:22 teaSlurper joins (~chris@81.96.113.213)
18:41:35 × peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Quit: Must not waste too much time here...)
18:42:01 <flipchan> if anyone is looking for work: https://haskell.careers
18:42:33 × Ariakenom quits (~Ariakenom@c83-255-154-140.bredband.tele2.se) (Client Quit)
18:43:36 peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
18:43:46 Ariakenom joins (~Ariakenom@c83-255-154-140.bredband.tele2.se)
18:46:20 × flipchan quits (~yumman@88.131.87.132) (Changing host)
18:46:20 flipchan joins (~yumman@user/flipchan)
18:46:30 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 272 seconds)
18:49:28 Morrow joins (~MorrowM_@147.161.9.7)
18:51:13 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
18:53:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
18:55:46 <TheCommieDuck> is there a cut-and-dry whether to prefer generics or TH? thinking of e.g. lens, where if you're not using the typed generic lenses then it's basically identical
19:00:12 <dmj`> TheCommieDuck: Not really, Generics can have a higher runtime cost potentially, depending on how it was implemented (aeson generics instances were slower than aeson th instances). Template Haskell usually becomes problematic if you have a lot of it, or you're cross compiling. They're also not entirely equivalent, TH you can define new datatypes, w/ Generics you can only derive objects from pre-existing data types.
19:00:55 <TheCommieDuck> oh sure, I get that TH definitely has more scope; I was thinking solely in the cases that you're comparing very similar functionality
19:00:58 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:02:25 <dmj`> I'd use Generics until performance is a problem, and if it never is, then great.
19:03:14 dunkeln joins (~dunkeln@188.71.193.140)
19:05:36 justsomeguy joins (~justsomeg@user/justsomeguy)
19:13:40 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Remote host closed the connection)
19:14:25 × nurupo quits (~nurupo.ga@user/nurupo) (Quit: nurupo.ga)
19:14:31 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
19:15:28 nurupo joins (~nurupo.ga@user/nurupo)
19:17:41 <ChaiTRex> What's the latest GHC that cabal-install 3.4 supports?
19:18:48 × mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Read error: Connection reset by peer)
19:19:16 × pbrisbin quits (~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) (Ping timeout: 252 seconds)
19:19:35 mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
19:21:41 kw joins (~user@2605:a601:a615:f600:601:15f2:ebf9:271)
19:24:02 Pickchea joins (~private@user/pickchea)
19:24:10 <kw> Is there a good way to use polymorphic lens classes (i.e. `class HasFoo s t a b | s -> a, t -> b where ...` ) without running into ambiguous type errors? Do I need more restrictive fundeps, like `HasFoo s t a b | s -> a, t -> b, a t -> s, b s -> t` ?
19:30:18 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
19:30:46 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:31:36 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:31:39 <dminuoso> kw: Can you give some specific code that provokes an ambiguous type error with these classy lenses?
19:34:09 × MQ-17J quits (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds)
19:34:27 MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com)
19:36:08 <motte_> why doesn't this compile: https://paste.tomsmeding.com/qyMZQak4 ? nonsensical example but i really don't get it - it compiles when i move fn out of the where block
19:36:38 <dminuoso> motte_: The binding is tied to the single last definition
19:36:50 <dminuoso> Each declaration of `test` is separate
19:37:33 <dminuoso> If you want to share a binding over a group like that, you could do something like `test = go where fn = id; go x False = ...; go x True = ...;
19:37:40 <geekosaur> where scopes over guards, not equations
19:37:49 <motte_> oh
19:38:11 <motte_> pretty odd that i havent ran into this before
19:40:29 <EvanR> yeah where is not just a respelling of lett
19:40:34 <EvanR> let
19:41:34 <dminuoso> geekosaur: Mmm, "guards"?
19:41:57 <glguy> f | this = that | the = other where a = b
19:42:12 <dminuoso> Ahh. "Scopes over" meant something different than what I thought.
19:42:17 × kw quits (~user@2605:a601:a615:f600:601:15f2:ebf9:271) (Quit: ERC (IRC client for Emacs 27.1))
19:48:24 <dmj`> I wish quasiquoters could take arguments, [| query schema | select 2 + 2; |]
19:48:42 <dminuoso> dmj`: let qq = query schema in [qq| ... |] ?
19:48:54 <qrpnxz> speaking of, what does `class TypeBoy a a' | a' -> a where` mean? what is that pipe doing there?
19:49:02 <dminuoso> qrpnxz: Its a functional dependency
19:49:08 <qrpnxz> wut
19:49:21 <dminuoso> https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/functional_dependencies.html
19:49:54 <qrpnxz> ty sir
19:49:55 <dminuoso> Mmm, the manual is very lacking here
19:50:21 <dminuoso> Oh hah nevermind. Its all good
19:50:29 <dminuoso> My browser misrendered apparently]
19:50:53 <qrpnxz> lol
19:51:29 <qrpnxz> i didn't even know there was an honest to goodness manual for this language, i'm always having to like look at the base lib docks and hunt stuff in the wiki, or ask here
19:52:22 <dminuoso> This is a very readable official report of our language: https://www.haskell.org/onlinereport/haskell2010/
19:52:34 <qrpnxz> oh, this is only for extensions 😩️
19:52:46 <qrpnxz> didn't ghc already break compat with haskell 2010?
19:52:53 <dmj`> dminuoso: well I'll be, some assembly required to pass the stage restriction, but fits the bill
19:52:57 <dmj`> dminuoso: ty
19:52:57 <qrpnxz> eh better than nothing ig
19:53:38 <dminuoso> qrpnxz: Well, there's some minor edges where GHC is not fully Haskell2010 compliant, but they can be mostly glossed over.
19:53:39 <davean> qrpnxz: Not really in a meaningful way.
19:53:51 <qrpnxz> alright :)
19:54:37 teaSlurper joins (~chris@81.96.113.213)
19:55:40 <qrpnxz> speaking of incompatibilities, do you think this will happen within the next decade? https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return
19:55:45 <qrpnxz> cause it'd be pretty cool
19:55:55 <davean> qrpnxz: It would be
19:56:59 <dminuoso> I think it would be mostly inconsequential.
19:58:19 xkuru joins (~xkuru@user/xkuru)
19:58:48 <dminuoso> Due to the recent discussion on the haskell mailing list, I think such proposals create a lot of friction unless -Wcompat was included by -Wall
19:58:59 × teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 244 seconds)
19:59:21 <dminuoso> Even if -Wall was included -Wall, Im not convinced most people actually have -Wall turned on.
19:59:32 <qrpnxz> i like that it would make it impossible for pure /= return and such
19:59:46 <maralorn> At some point I have largely stopped worrying about Haskell being to large (i.e. to many passing programs) and just cared about it becoming large enough for me. So that I can write the program I want to write.
20:00:29 chisui joins (~chisui@200116b8665ca2000dd322c548f95515.dip.versatel-1u1.de)
20:00:30 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:01:03 × dunkeln quits (~dunkeln@188.71.193.140) (Ping timeout: 250 seconds)
20:01:24 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:03:20 <dmj`> maralorn: haskell programs are too big to fail
20:03:25 <qrpnxz> lol
20:06:07 <spruit11> or too big to succeed
20:06:53 × mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 268 seconds)
20:08:03 <dminuoso> dmj`: Do you think we get government bailouts when GHC no longer compiles our programs?
20:08:49 <dminuoso> Considering the presence of Haskell in fintech, who knows...
20:09:04 dunkeln_ joins (~dunkeln@188.71.193.140)
20:09:16 <chisui> Before that happens they would have to provide Java Apps with RAM.
20:09:31 <dmj`> dminuoso: If you're in a higher-kinded class then yes.
20:10:18 × dunkeln_ quits (~dunkeln@188.71.193.140) (Client Quit)
20:15:15 <dmj`> dminuoso: I'm working on a project to type check SQL queries against a SQL schema generated using GHC.Generics
20:15:25 <dmj`> in a quasi quoter
20:16:03 × Guest9 quits (~Guest9@103.86.19.137) (Quit: Connection closed)
20:19:12 acidjnk joins (~acidjnk@p200300d0c72b9515dd29d5fa98a40466.dip0.t-ipconnect.de)
20:24:21 <qrpnxz> '
20:28:09 iridescent joins (~iridescen@41337027.cst.lightpath.net)
20:28:17 <iridescent> anyone have a good explanation to algebraic effects?
20:28:25 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
20:28:26 <iridescent> i don't really want to read the original paper
20:28:36 <iridescent> i tried and it was too dense :(
20:29:36 <davean> iridescent: what level do you want it at? That matters a lot
20:29:44 <iridescent> oh, i'm a complete beginner
20:29:58 <iridescent> people were talking about it at a PL discussion
20:30:01 <iridescent> and i got curious :)
20:30:30 <qrpnxz> foldable class has a lot of methods, but is not complete. There's like 50 versions of fold, yet no fold1, or fold', weird.
20:30:41 <davean> iridescent: ok, then "effects" = things happen, "algebraic" = you get laws about how they interact
20:30:54 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:31:01 <iridescent> oh oops i meant like, do you have a good article that explains it :P
20:31:08 <davean> iridescent: "effects" libraries when you see them under that name often have an issue with knowing what happens when you use more than one
20:33:06 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
20:35:22 falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
20:42:43 <dsal> qrpnxz: what would `fold1` look like?
20:43:20 <qrpnxz> it would take a foldable of semigroups and give you a semigroup
20:43:31 <dsal> Oh. There's one in semigroupoids that does that.
20:44:12 <qrpnxz> yeah i was sure someone wrote it, i'm just saying idk the logic about what does get into Foldable and what doesn't, cause it already has like a bazillion combinations of properties lol
20:44:42 <dsal> Is it partial? The signature isn't super clear.
20:44:55 <qrpnxz> not sure what you are asking sorry
20:45:54 <dsal> > foldl1 (+) [] :: Int -- foldl1 is partial
20:45:55 <lambdabot> *Exception: Prelude.foldl1: empty list
20:46:08 <dsal> But the one in semigroups isn't defined for [], so that's probably fine.
20:46:29 <dsal> It has a special typeclass `Foldable1`
20:46:31 <qrpnxz> it would error on empty foldable since semigroup has no mempty
20:46:37 <qrpnxz> like foldl1 and foldr1
20:46:45 <dsal> Yes, those are partial functions. Partial functions are bad. :)
20:47:08 <qrpnxz> well how do you say "give me a nonempty foldable" :)
20:47:15 <qrpnxz> no way currenty
20:47:16 <dsal> @hoogle NonEmpty
20:47:16 <lambdabot> module Data.List.NonEmpty
20:47:16 <lambdabot> Data.List.NonEmpty data NonEmpty a
20:47:16 <lambdabot> GHC.Base data NonEmpty a
20:47:21 <qrpnxz> NonEmpty is for lists no?
20:47:41 <dsal> Oh, sure, but this is how they did it in semigroupoids: https://hackage.haskell.org/package/semigroupoids-5.3.5/docs/Data-Semigroup-Foldable.html#v:fold1
20:47:47 × Jeanne-Kamikaze quits (~Jeanne-Ka@192.252.212.45) (Quit: Leaving)
20:48:46 <qrpnxz> so a law would be like toNonEmpty cannot be partial? but you can just say there's a law that says fold1 is also not partial
20:49:31 <dsal> Well, fold1 is only not partial if the thing you're feeding it can't be empty.
20:49:43 <dsal> So you just have to worry about the Foldable1 class lawfulness.
20:49:48 <qrpnxz> right the only guarantee of that is the programmer promisses
20:50:04 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:52:05 <dsal> Sort of? I mean, you can make an empty non-empty if you considered `undefined :| []` a valid result, but you can throw `undefined` anywhere if you want to be chaotic.
20:52:35 <dsal> (and even then, it's technically not empty depending on what you're going to do with it)
20:53:06 × SoF quits (~skius@user/skius) (Quit: Ping timeout (120 seconds))
20:53:24 SoF joins (~skius@user/skius)
20:56:41 × dhil quits (~dhil@80.208.56.181) (Read error: Connection reset by peer)
20:57:29 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
20:58:55 × chisui quits (~chisui@200116b8665ca2000dd322c548f95515.dip.versatel-1u1.de) (Ping timeout: 246 seconds)
21:03:23 Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
21:05:29 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
21:11:32 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
21:13:59 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:16:06 gehmehgeh joins (~user@user/gehmehgeh)
21:18:11 × eco quits (~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com) (Ping timeout: 250 seconds)
21:19:27 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
21:30:47 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:33:57 <qrpnxz> would (Monad m, Monad t, Traversable t) => Compose m t always be a monad?
21:35:06 <qrpnxz> given that join = fmap join . join . fmap sequenceA (which ik you can't make an instance with this, but would it follow the monad laws anyway is the question)
21:39:27 × norias quits (~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 268 seconds)
21:42:04 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:43:22 chisui joins (~chisui@200116b864537a005c14c63c4df5fc2e.dip.versatel-1u1.de)
21:50:49 m7zs3gzw joins (~m7zs3gzw@178.155.6.220)
21:56:55 × m7zs3gzw quits (~m7zs3gzw@178.155.6.220) (Remote host closed the connection)
21:58:40 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
21:59:11 a6a45081-2b83 joins (~aditya@106.214.225.112)
21:59:44 × yoctocell quits (~user@h87-96-130-155.cust.a3fiber.se) (Ping timeout: 268 seconds)
21:59:45 <a6a45081-2b83> {f::[Int];f=do{return 2; return 3;}}
21:59:50 <a6a45081-2b83> f==[2,3] ??
22:01:34 <geekosaur> > let f :: [Int]; f = do { return 2; return 3; }
22:01:35 <lambdabot> <no location info>: error:
22:01:35 <lambdabot> not an expression: ‘let f :: [Int]; f = do { return 2; return 3; }’
22:01:41 <geekosaur> > let f :: [Int]; f = do { return 2; return 3; } in f
22:01:42 <lambdabot> [3]
22:01:50 <geekosaur> return is not a statement;
22:02:03 <geekosaur> @undo do { return 2; return 3 }
22:02:03 <lambdabot> return 2 >> return 3
22:02:12 <geekosaur> the 2 is discarded
22:02:13 <a6a45081-2b83> I was expecting it to inject the value in the monad
22:02:19 <a6a45081-2b83> more like >>=
22:02:21 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
22:02:34 <a6a45081-2b83> yeah you are right
22:02:39 lavaman joins (~lavaman@98.38.249.169)
22:04:06 <dsal> `return` is a confusing function and is best avoided.
22:07:12 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
22:07:42 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:08:27 <hpc> it's best to just rename return to something even more confusing
22:08:36 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:08:38 <hpc> foo = do {this; that; the other thing; exit();}
22:08:46 <a6a45081-2b83> rofl
22:09:12 <janus> > let exit() = pure
22:09:13 <lambdabot> <no location info>: error: not an expression: ‘let exit() = pure’
22:09:19 <hpc> @let exit = pure
22:09:20 <lambdabot> Defined.
22:09:25 <hpc> :t exit()
22:09:26 <lambdabot> Applicative f => f ()
22:09:42 × falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
22:09:51 <hpc> :t exit(1)
22:09:52 <lambdabot> (Applicative f, Num a) => f a
22:09:54 <hpc> :D
22:10:16 <janus> maybe one could use aboriginal brackets like they do in go for generics and have it not be an unit..
22:12:04 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 268 seconds)
22:14:31 × SoF quits (~skius@user/skius) (Quit: Ping timeout (120 seconds))
22:14:50 SoF joins (~skius@user/skius)
22:15:50 × acidjnk quits (~acidjnk@p200300d0c72b9515dd29d5fa98a40466.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
22:17:44 × kayprish quits (~kayprish@46.240.143.86) (Remote host closed the connection)
22:19:40 × Morrow quits (~MorrowM_@147.161.9.7) (Ping timeout: 252 seconds)
22:20:05 Morrow joins (~MorrowM_@147.161.12.168)
22:22:26 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Ping timeout: 258 seconds)
22:24:32 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
22:24:38 × egoist quits (~egoist@186.235.82.105) (Read error: Connection reset by peer)
22:25:56 × a6a45081-2b83 quits (~aditya@106.214.225.112) (Quit: Konversation terminated!)
22:27:46 geekosaur joins (~geekosaur@xmonad/geekosaur)
22:28:36 × derelict quits (~derelict@user/derelict) (Quit: WeeChat 3.2)
22:28:52 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
22:37:21 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
22:37:32 cheater joins (~Username@user/cheater)
22:42:24 × cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds)
22:43:49 × iridescent quits (~iridescen@41337027.cst.lightpath.net) (Quit: Client closed)
22:46:38 cheater1__ joins (~Username@user/cheater)
22:47:04 × oxide quits (~lambda@user/oxide) (Quit: oxide)
22:47:30 cheater1__ is now known as cheater
22:47:34 Flonk joins (~Flonk@ec2-52-40-29-25.us-west-2.compute.amazonaws.com)
22:51:39 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
22:52:51 gentauro joins (~gentauro@user/gentauro)
22:54:38 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 258 seconds)
22:54:45 × jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.1)
22:58:35 × Ariakenom quits (~Ariakenom@c83-255-154-140.bredband.tele2.se) (Ping timeout: 265 seconds)
23:01:32 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:04:14 jlombera joins (~jlombera@187.177.181.166)
23:08:54 jlombera parts (~jlombera@187.177.181.166) (WeeChat 3.2)
23:10:15 × aplainze1akind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
23:19:15 jlombera joins (~jlombera@187.177.181.166)
23:20:19 × cheater quits (~Username@user/cheater) (Ping timeout: 258 seconds)
23:20:36 cheater joins (~Username@user/cheater)
23:22:32 parisienne joins (sid383587@id-383587.brockwell.irccloud.com)
23:23:22 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
23:23:49 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
23:24:44 pfurla_ joins (~pfurla@216.131.83.76)
23:27:43 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 244 seconds)
23:28:54 AWizzArd joins (~code@user/awizzard)
23:29:22 Feuermagier joins (~Feuermagi@user/feuermagier)
23:30:00 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
23:30:06 cheater1__ joins (~Username@user/cheater)
23:30:08 cheater1__ is now known as cheater
23:31:49 machinedgod joins (~machinedg@24.105.81.50)
23:35:33 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
23:42:17 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
23:42:50 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
23:42:54 × ph88 quits (~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5) (Ping timeout: 272 seconds)
23:43:38 cheater1__ joins (~Username@user/cheater)
23:44:30 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
23:44:31 cheater1__ is now known as cheater
23:47:45 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
23:49:25 × stevenxl quits (~stevenlei@174.128.182.86) (Ping timeout: 250 seconds)
23:51:31 lavaman joins (~lavaman@98.38.249.169)

All times are in UTC on 2021-06-26.