2021/06/26

2021-06-26 00:02:18 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-06-26 00:02:18 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-06-26 00:02:39 +0200allbery_bgeekosaur
2021-06-26 00:02:42 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 258 seconds)
2021-06-26 00:03:26 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-26 00:05:34 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-06-26 00:06:28 +0200mc47(~mc47@xmonad/TheMC47) (Quit: Leaving)
2021-06-26 00:06:56 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-06-26 00:09:32 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
2021-06-26 00:10:36 +0200Codaraxis(~Codaraxis@user/codaraxis)
2021-06-26 00:10:53 +0200chomwitt(~Pitsikoko@athedsl-16082.home.otenet.gr) (Ping timeout: 265 seconds)
2021-06-26 00:12:00 +0200n283(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Read error: Connection reset by peer)
2021-06-26 00:12:07 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-06-26 00:14:35 +0200dhil(~dhil@195.213.192.47) (Ping timeout: 258 seconds)
2021-06-26 00:14:40 +0200Codaraxis_(~Codaraxis@193.32.126.157) (Ping timeout: 272 seconds)
2021-06-26 00:17:05 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 268 seconds)
2021-06-26 00:17:05 +0200Morrow_(~MorrowM_@147.161.9.9) (Read error: Connection reset by peer)
2021-06-26 00:17:12 +0200acidjnk(~acidjnk@p200300d0c72b9545f908228849627247.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2021-06-26 00:18:04 +0200Morrow(~MorrowM_@147.161.9.9)
2021-06-26 00:18:10 +0200delYsid(~user@user/delYsid) (ERC (IRC client for Emacs 27.1.50))
2021-06-26 00:24:00 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-06-26 00:26:34 +0200derelict(~derelict@user/derelict)
2021-06-26 00:30:57 +0200 <sm[m]> when parsing a datetime string including a timezone with Data.Time.Format.parseTimeM, with a return type of Maybe Day, I think it just discards the timezone. Am I right ?
2021-06-26 00:31:49 +0200 <sm[m]> so it you want to convert it to a local date, you should parse to Maybe UTCTime, then convert that to local date as a separate step ?
2021-06-26 00:36:30 +0200ph88^(~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5)
2021-06-26 00:42:09 +0200junkicide(~user@2a01:e0a:195:20c0:91d0:f47d:73ce:dac7) (Ping timeout: 272 seconds)
2021-06-26 00:47:50 +0200egoist1(~egoist@186.235.82.7)
2021-06-26 00:49:28 +0200 <mason0> > Nothing <|> Just "foo"
2021-06-26 00:49:29 +0200 <lambdabot> Just "foo"
2021-06-26 00:49:34 +0200 <mason0> > Nothing <> Just "foo"
2021-06-26 00:49:35 +0200 <lambdabot> Just "foo"
2021-06-26 00:49:40 +0200 <mason0> which one is preferred?
2021-06-26 00:49:58 +0200 <hpc> > Just "foo" <> Just "bar"
2021-06-26 00:49:59 +0200 <lambdabot> Just "foobar"
2021-06-26 00:50:04 +0200 <hpc> > Just "foo" <|> Just "bar"
2021-06-26 00:50:06 +0200 <lambdabot> Just "foo"
2021-06-26 00:50:08 +0200 <mason0> oh!
2021-06-26 00:50:08 +0200 <hpc> mason0: it depends
2021-06-26 00:50:15 +0200fendor(~fendor@91.141.57.241.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-06-26 00:50:19 +0200 <mason0> yeah, I definitely want <|>
2021-06-26 00:51:00 +0200egoist(~egoist@186.235.82.7) (Ping timeout: 265 seconds)
2021-06-26 01:02:14 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2021-06-26 01:04:34 +0200acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2021-06-26 01:05:16 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-06-26 01:05:26 +0200sleym(~sleym@185.124.240.166)
2021-06-26 01:06:11 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.227.207) (Remote host closed the connection)
2021-06-26 01:06:32 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
2021-06-26 01:06:37 +0200 <xsperry> sm[m], if the time in string is in UTC, you could do that, yes
2021-06-26 01:07:27 +0200adinfinitum(~adinfinit@2600:6c40:653f:5f00:a650:d8d7:fe0b:8c1f)
2021-06-26 01:08:43 +0200mikail(~mikail@90.212.77.3)
2021-06-26 01:08:46 +0200mikail_(~mikail@90.212.77.3)
2021-06-26 01:09:00 +0200mikail_(~mikail@90.212.77.3) (Remote host closed the connection)
2021-06-26 01:09:07 +0200 <sm[m]> xsperry: I'm getting really confused by parseTimeM's timezone handling
2021-06-26 01:09:08 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2021-06-26 01:09:15 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-26 01:09:18 +0200 <sm[m]> if any!
2021-06-26 01:10:24 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-26 01:10:26 +0200 <mason0> I'm pretty sure it doesn't do any
2021-06-26 01:10:51 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-26 01:10:55 +0200 <sm[m]> man, that should be documented
2021-06-26 01:12:54 +0200 <mason0> getCurrentTimeZone returns IO, parseTimeM is a pure function, so I don't think it can do any conversions, even if it wanted, with that type signature
2021-06-26 01:13:16 +0200 <mason0> (and using getCurrentTimeZone would be wrong anyway)
2021-06-26 01:13:23 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-26 01:13:54 +0200 <sm[m]> it seems to me the ParseTime instance for LocalTime discards parsed timezone info, but the instance for UTCTime does not: https://termbin.com/9fd5
2021-06-26 01:14:02 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2021-06-26 01:14:39 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2021-06-26 01:14:52 +0200 <sm[m]> or rather: the UTCTime instance uses parsed timezone to adjust the time of day, but not the date. The LocalTime instance adjusts neither.
2021-06-26 01:15:06 +0200 <mason0> oh, interesting
2021-06-26 01:15:11 +0200 <mason0> don't mind me, then :)
2021-06-26 01:15:40 +0200 <mason0> I think LocalTime can't adjust for the reason I mentioned above, though. it can't know find out the current time zone without having IO signature
2021-06-26 01:17:08 +0200hiruji(~hiruji@user/hiruji) (Ping timeout: 252 seconds)
2021-06-26 01:17:12 +0200 <mason0> note that if you convert UTC to LocalTime using getCurrentTimeZone as an argument, you may get wrong result (if, for example, you are currently on summer time, but weren't at the date in the string)
2021-06-26 01:17:12 +0200 <sm[m]> I agree, we couldn't expect the LocalTime instance to do this with the current type signature. Should still be documented I think.
2021-06-26 01:18:39 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-26 01:18:58 +0200 <mason0> I agree, this should be documented
2021-06-26 01:19:07 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Ping timeout: 250 seconds)
2021-06-26 01:19:09 +0200 <sm[m]> mason0: yikes
2021-06-26 01:20:31 +0200azeem(~azeem@dynamic-adsl-94-34-50-190.clienti.tiscali.it) (Ping timeout: 258 seconds)
2021-06-26 01:20:39 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
2021-06-26 01:20:54 +0200 <sm[m]> how to reliably extract the local date from a timestamp, I wonder ?
2021-06-26 01:20:56 +0200 <mason0> since timezones, and whether there's a summer time or not, is a political decision, conversions for future dates can't even be determined
2021-06-26 01:20:58 +0200mikail(~mikail@90.212.77.3) (Quit: Leaving)
2021-06-26 01:21:14 +0200 <mason0> for past dates, see this: https://hackage.haskell.org/package/tz-0.1.3.5
2021-06-26 01:22:10 +0200 <geekosaur> sm[m], in the presence of summer time/DST changes, that's always iffy
2021-06-26 01:22:29 +0200 <sm[m]> if I simplify and say, assume a past timestamp ?
2021-06-26 01:22:50 +0200 <geekosaur> you still have problems around those changes
2021-06-26 01:23:03 +0200 <sm[m]> mason0 do you think tz's utcToLocalTimeTZ would handle it right ?
2021-06-26 01:23:23 +0200 <mason0> it did for me when I had to do something similar in the past
2021-06-26 01:26:54 +0200cheater(~Username@user/cheater) (Quit: (BitchX) If you gaze into the abyss, the abyss gazes also into you)
2021-06-26 01:28:59 +0200hiruji(~hiruji@user/hiruji)
2021-06-26 01:30:31 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-26 01:31:00 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.227.207)
2021-06-26 01:31:08 +0200 <sm[m]> thanks
2021-06-26 01:31:26 +0200 <sm[m]> I'm reporting a bug, we'll see what the time lord thinks
2021-06-26 01:37:01 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Remote host closed the connection)
2021-06-26 01:37:10 +0200azeem(~azeem@dynamic-adsl-94-34-9-28.clienti.tiscali.it)
2021-06-26 01:42:18 +0200 <sm[m]> phew, found mistakes in my paste. https://termbin.com/jhze shows the UTCTime instance works fine, adjusting the date as expected.
2021-06-26 01:44:51 +0200 <sm[m]> I think the result of parseTimeM ... :: Maybe UTCTime can be relied on, and it's only when you try to convert that to another time zone things can go wrong, mason0 ?
2021-06-26 01:44:55 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
2021-06-26 01:45:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-06-26 01:46:40 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 252 seconds)
2021-06-26 01:46:44 +0200 <mason0> yes. it should work in combination with tz package
2021-06-26 01:46:50 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-26 01:47:34 +0200cheater(~Username@user/cheater)
2021-06-26 01:48:23 +0200zebrag_(~chris@user/zebrag)
2021-06-26 01:48:35 +0200zebrag(~chris@user/zebrag) (Ping timeout: 250 seconds)
2021-06-26 01:49:07 +0200is7s(~is7s@2a01:4b00:895f:3d00:fd08:7a4b:2db3:57e3)
2021-06-26 01:50:19 +0200hmmmas(~chenqisu1@183.217.200.246)
2021-06-26 01:55:25 +0200hmmmas(~chenqisu1@183.217.200.246) (Quit: Leaving.)
2021-06-26 01:56:44 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Quit: Leaving)
2021-06-26 01:56:52 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-06-26 01:57:45 +0200MorrowM(~MorrowM_@147.161.9.7)
2021-06-26 01:58:12 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-26 01:59:38 +0200 <qrpnxz> i read that this is a free theorem for functors: `map g . f = f . map g` when f :: [a] -> [a], but i don't buy it. It doesn't hold for f = fmap (++"f") and g = (++"g")
2021-06-26 01:59:51 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 02:00:04 +0200Morrow(~MorrowM_@147.161.9.9) (Ping timeout: 268 seconds)
2021-06-26 02:00:29 +0200 <shachaf> But fmap (++"f") doesn't have the type [a] -> [a]
2021-06-26 02:00:57 +0200 <qrpnxz> but it does
2021-06-26 02:01:10 +0200 <qrpnxz> a = String, f = []
2021-06-26 02:01:38 +0200 <shachaf> No, in Haskell "f :: [a] -> [a]" means "f :: forall a. [a] -> [a]".
2021-06-26 02:01:47 +0200 <qrpnxz> dang it
2021-06-26 02:02:00 +0200 <shachaf> That's what gives you the free theorem
2021-06-26 02:02:03 +0200 <qrpnxz> isn't the only thing you can do that is [a] -> [a] id then?
2021-06-26 02:02:13 +0200 <shachaf> No.
2021-06-26 02:02:14 +0200 <hpc> or tail
2021-06-26 02:02:27 +0200 <qrpnxz> hm
2021-06-26 02:02:30 +0200 <hpc> there's lots of things you can do with the list, just not really its elements
2021-06-26 02:02:37 +0200 <qrpnxz> ye ye
2021-06-26 02:02:41 +0200 <MorrowM> @type reverse
2021-06-26 02:02:42 +0200 <lambdabot> [a] -> [a]
2021-06-26 02:03:04 +0200 <MorrowM> take, drop, etc
2021-06-26 02:03:25 +0200hgolden(~hgolden2@cpe-172-114-84-61.socal.res.rr.com)
2021-06-26 02:03:36 +0200 <shachaf> You can do a lot of things, but they're all structural, not knowing anything about the elements.
2021-06-26 02:03:36 +0200 <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?
2021-06-26 02:03:40 +0200 <qrpnxz> *think
2021-06-26 02:03:59 +0200 <qrpnxz> interesting
2021-06-26 02:04:02 +0200 <shachaf> Sure, something like that.
2021-06-26 02:04:28 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
2021-06-26 02:04:59 +0200 <shachaf> f is a natural transformation, if that means anything.
2021-06-26 02:05:14 +0200 <qrpnxz> alright
2021-06-26 02:05:30 +0200 <sm[m]> https://github.com/haskell/time/issues/172
2021-06-26 02:08:34 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 02:08:43 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-26 02:08:50 +0200 <sm[m]> ack, I thought time was still managed by the original author.
2021-06-26 02:08:59 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 02:14:22 +0200adinfinitum(~adinfinit@2600:6c40:653f:5f00:a650:d8d7:fe0b:8c1f) (Ping timeout: 272 seconds)
2021-06-26 02:17:32 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Remote host closed the connection)
2021-06-26 02:18:03 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
2021-06-26 02:22:51 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Ping timeout: 272 seconds)
2021-06-26 02:25:49 +0200alx741(~alx741@181.196.69.199) (Quit: alx741)
2021-06-26 02:27:41 +0200alx741(~alx741@181.196.69.199)
2021-06-26 02:29:42 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-26 02:30:45 +0200Cajun(~Cajun@ip98-163-211-112.no.no.cox.net)
2021-06-26 02:31:23 +0200stevenxl(~stevenlei@174.128.179.103) (Read error: Connection reset by peer)
2021-06-26 02:31:38 +0200stevenxl(~stevenlei@174.128.179.103)
2021-06-26 02:31:50 +0200funsafe(~funsafe@2601:1c1:4200:938f:4e1e:fc56:b28f:5ac7) (Ping timeout: 244 seconds)
2021-06-26 02:32:00 +0200chexum(~chexum@gateway/tor-sasl/chexum) (Ping timeout: 244 seconds)
2021-06-26 02:33:54 +0200chexum(~chexum@gateway/tor-sasl/chexum)
2021-06-26 02:34:04 +0200funsafe(~funsafe@2601:1c1:4200:938f:4e1e:fc56:b28f:5ac7)
2021-06-26 02:34:29 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 02:35:08 +0200nerdypepper(~nerdypepp@152.67.162.71) (Quit: bye)
2021-06-26 02:35:27 +0200xff0x(~xff0x@2001:1a81:52c9:c400:7297:5fed:23fc:a105) (Ping timeout: 244 seconds)
2021-06-26 02:36:14 +0200xff0x(~xff0x@2001:1a81:52c9:c400:e0d8:2879:2fd2:a436)
2021-06-26 02:36:48 +0200nerdypepper(~nerdypepp@152.67.162.71)
2021-06-26 02:37:31 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
2021-06-26 02:37:37 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-26 02:39:36 +0200alx741(~alx741@181.196.69.199) (Quit: alx741)
2021-06-26 02:39:44 +0200lbseale(~lbseale@user/ep1ctetus) (Read error: Connection reset by peer)
2021-06-26 02:40:11 +0200adinfinitum(~adinfinit@2600:6c40:653f:5f00:a650:d8d7:fe0b:8c1f)
2021-06-26 02:40:51 +0200alx741(~alx741@181.196.69.199)
2021-06-26 02:49:11 +0200aerh(~aerh@99-39-158-127.lightspeed.ltrkar.sbcglobal.net)
2021-06-26 02:49:35 +0200aerh(~aerh@99-39-158-127.lightspeed.ltrkar.sbcglobal.net) ()
2021-06-26 02:50:39 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Remote host closed the connection)
2021-06-26 02:51:03 +0200 <qrpnxz> shouldn't `f (a -> b)` = `f a -> f b` if `f` is a functor?
2021-06-26 02:52:14 +0200 <shachaf> No.
2021-06-26 02:52:37 +0200 <qrpnxz> tru
2021-06-26 02:53:40 +0200 <qrpnxz> ok ok i think i get it now
2021-06-26 02:56:23 +0200wei2912(~wei2912@112.199.250.21)
2021-06-26 02:56:41 +0200Deide(~Deide@user/deide) (Quit: Seeee yaaaa)
2021-06-26 02:58:29 +0200 <mason0> sm[m], oh, there's actually getTimeZone :: UTCTime -> IO TimeZone in Data.Time.LocalTime, so tz package may not even be needed
2021-06-26 02:58:40 +0200lavaman(~lavaman@98.38.249.169)
2021-06-26 02:58:45 +0200fYnch(~mike@174.127.249.180)
2021-06-26 02:59:01 +0200adinfinitum(~adinfinit@2600:6c40:653f:5f00:a650:d8d7:fe0b:8c1f) (WeeChat 3.0.1)
2021-06-26 02:59:56 +0200 <mason0> I did a couple of tests, and it correctly adjusts daylight saving according to passed date for my timezone
2021-06-26 03:00:31 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-06-26 03:03:49 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2021-06-26 03:03:50 +0200 <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
2021-06-26 03:04:51 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
2021-06-26 03:04:58 +0200 <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
2021-06-26 03:05:47 +0200 <shachaf> fYnch: Well, What's b supposed to be?
2021-06-26 03:06:02 +0200 <shachaf> Did that code compile in the past?
2021-06-26 03:06:56 +0200 <shachaf> Hmm, I guess I see what it's trying to do.
2021-06-26 03:07:17 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 268 seconds)
2021-06-26 03:07:36 +0200neurocyte57(~neurocyte@user/neurocyte)
2021-06-26 03:07:46 +0200 <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 :|
2021-06-26 03:09:32 +0200 <shachaf> Is it used anywhere else?
2021-06-26 03:09:43 +0200 <shachaf> I haven't used any of these extensions in years.
2021-06-26 03:09:55 +0200 <shachaf> Maybe you can make UnDBConnection a standalone type family or something? I don't know how you're using it.
2021-06-26 03:10:00 +0200Nahra(~user@static.161.95.99.88.clients.your-server.de)
2021-06-26 03:11:16 +0200neurocyte5(~neurocyte@user/neurocyte) (Ping timeout: 246 seconds)
2021-06-26 03:14:08 +0200 <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/Postgre…
2021-06-26 03:16:12 +0200hegstal(~hegstal@2a02:c7f:7604:8a00:b401:1d9:cf08:e9d0) (Remote host closed the connection)
2021-06-26 03:16:42 +0200 <shachaf> Well, that code doesn't seem to be using it.
2021-06-26 03:18:36 +0200sleym(~sleym@185.124.240.166) (Read error: Connection reset by peer)
2021-06-26 03:21:04 +0200 <fYnch> yeah, I don't get why i need this UnDBConnection (DBConnection a)
2021-06-26 03:21:10 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
2021-06-26 03:21:12 +0200 <fYnch> going to try removing it and just us DBConnection a
2021-06-26 03:21:30 +0200ph88^(~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5) (Ping timeout: 272 seconds)
2021-06-26 03:23:56 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
2021-06-26 03:24:00 +0200 <fYnch> huh, without it it cant match my DBConnection type with the type i supply
2021-06-26 03:24:55 +0200xff0x(~xff0x@2001:1a81:52c9:c400:e0d8:2879:2fd2:a436) (Ping timeout: 272 seconds)
2021-06-26 03:26:08 +0200leeb_(~leeb@KD111239153087.au-net.ne.jp) (Quit: WeeChat 3.1)
2021-06-26 03:26:11 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Ping timeout: 272 seconds)
2021-06-26 03:26:26 +0200xff0x(~xff0x@2001:1a81:5302:7b00:7b9e:b34d:db0e:110c)
2021-06-26 03:28:31 +0200 <fYnch> i wrote this origonally in 2014, I think i need to update it to use TypeFamilyDependencies
2021-06-26 03:28:57 +0200 <geekosaur> I'm a bit surprised that ever worked given the dangling "b"
2021-06-26 03:32:33 +0200 <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
2021-06-26 03:32:47 +0200 <fYnch> it looks like something like this and reworking the rest of the source to play with it will get the same result
2021-06-26 03:34:49 +0200 <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
2021-06-26 03:34:56 +0200spruit11(~quassel@2a02:a467:ccd6:1:f4be:52a3:d576:1567)
2021-06-26 03:38:48 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-26 03:40:19 +0200 <shachaf> I don't know what the code is trying to accomplish.
2021-06-26 03:41:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-26 03:44:19 +0200 <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
2021-06-26 03:45:41 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
2021-06-26 03:45:51 +0200fizbin_(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 03:47:25 +0200ph88^(~ph88@2a02:8109:9e00:7e5c:413d:a4c8:b301:6764)
2021-06-26 03:47:58 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-06-26 03:49:12 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
2021-06-26 03:51:13 +0200ph88(~ph88@2a02:8109:9e00:7e5c:65ac:7b6b:22bc:47ee) (Ping timeout: 250 seconds)
2021-06-26 03:53:23 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Ping timeout: 250 seconds)
2021-06-26 03:58:42 +0200oxide(~lambda@user/oxide) (Ping timeout: 240 seconds)
2021-06-26 03:58:42 +0200fizbin_(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-26 04:00:59 +0200oxide(~lambda@user/oxide)
2021-06-26 04:02:15 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
2021-06-26 04:03:14 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-06-26 04:05:27 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 04:06:31 +0200dajoer(~david@user/gvx)
2021-06-26 04:11:16 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-06-26 04:14:16 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-26 04:15:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2021-06-26 04:16:27 +0200juhp(~juhp@128.106.188.66) (Quit: juhp)
2021-06-26 04:16:41 +0200juhp(~juhp@128.106.188.66)
2021-06-26 04:19:07 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
2021-06-26 04:21:15 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3-dev)
2021-06-26 04:22:41 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
2021-06-26 04:22:48 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Remote host closed the connection)
2021-06-26 04:24:39 +0200myShoggoth(~myShoggot@75.164.29.44)
2021-06-26 04:25:10 +0200 <jophish> the Dependencies section on Hackage doesn't seem to include custom setup dependencies
2021-06-26 04:25:18 +0200 <jophish> (or tests or benchmarks which I agree with)
2021-06-26 04:26:51 +0200gabiruh(~gabiruh@vps19177.publiccloud.com.br)
2021-06-26 04:28:44 +0200zebrag_(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-06-26 04:29:30 +0200myShoggoth(~myShoggot@75.164.29.44) (Ping timeout: 258 seconds)
2021-06-26 04:30:15 +0200myShoggoth(~myShoggot@75.164.29.44)
2021-06-26 04:32:29 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-06-26 04:32:29 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (platinum.libera.chat (Nickname regained by services)))
2021-06-26 04:32:29 +0200finn_elijaFinnElija
2021-06-26 04:32:43 +0200TranquilEcho(~grom@user/tranquilecho) (Quit: WeeChat 2.8)
2021-06-26 04:39:01 +0200hammock(~Hammock@2600:1700:19a1:3330::625) (Ping timeout: 272 seconds)
2021-06-26 04:41:11 +0200 <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
2021-06-26 04:41:23 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-06-26 04:41:25 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-06-26 04:41:34 +0200 <fYnch> shachaf: ^
2021-06-26 04:41:58 +0200egoist1(~egoist@186.235.82.7) (Quit: WeeChat 3.2)
2021-06-26 04:42:01 +0200 <fYnch> shachaf: thanks for looking at it earlier, I may never know how it ended up being that way
2021-06-26 04:43:54 +0200fYnch(~mike@174.127.249.180) (Remote host closed the connection)
2021-06-26 04:45:56 +0200Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2021-06-26 04:48:25 +0200 <sm[m]> mason0: ok, that's good to know. It would be strange if time did not do the right thing!
2021-06-26 04:49:16 +0200Codaraxis(~Codaraxis@user/codaraxis) (Ping timeout: 244 seconds)
2021-06-26 04:52:42 +0200td_(~td@94.134.91.180) (Ping timeout: 272 seconds)
2021-06-26 04:53:55 +0200td_(~td@muedsl-82-207-238-164.citykom.de)
2021-06-26 04:58:23 +0200stevenxl(~stevenlei@174.128.179.103) (Ping timeout: 250 seconds)
2021-06-26 05:02:21 +0200stevenxl(~stevenlei@174.128.182.196)
2021-06-26 05:03:43 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds)
2021-06-26 05:09:22 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
2021-06-26 05:10:31 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 258 seconds)
2021-06-26 05:14:25 +0200 <Boarders> Are there any papers that explain how the haskell runtime system works in some high level way?
2021-06-26 05:15:31 +0200 <Boarders> the one I found is "Runtime support for multicore haskell" but interested in other resources
2021-06-26 05:18:55 +0200teaSlurper(~chris@81.96.113.213)
2021-06-26 05:22:29 +0200 <hololeap> Boarders: there's various resources for different aspects of it. is there anything in particular you're interested in?
2021-06-26 05:22:57 +0200bontaq(~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 268 seconds)
2021-06-26 05:27:25 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 250 seconds)
2021-06-26 05:27:42 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-26 05:28:14 +0200 <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
2021-06-26 05:28:28 +0200 <Boarders> @hololeap
2021-06-26 05:28:29 +0200 <lambdabot> Unknown command, try @list
2021-06-26 05:29:53 +0200jespada(~jespada@90.254.247.46) (Ping timeout: 265 seconds)
2021-06-26 05:30:18 +0200 <ezzieyguywuf> do y'all know of any tools like ghcid that exist for c++ development?
2021-06-26 05:31:35 +0200jespada(~jespada@90.254.247.46)
2021-06-26 05:39:07 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
2021-06-26 05:39:11 +0200thunderfishmnrmnaugh
2021-06-26 05:40:03 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-06-26 05:41:19 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-26 05:44:02 +0200mason0(~bc817c21@1582020-static.lxtnkya3.metronetinc.net) (Quit: QUIT)
2021-06-26 05:48:36 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-06-26 05:51:29 +0200 <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?)
2021-06-26 05:53:27 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 258 seconds)
2021-06-26 05:54:13 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds)
2021-06-26 05:54:30 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-26 05:56:43 +0200 <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
2021-06-26 06:00:01 +0200jolly(~jolly@208.180.97.158) (Quit: Connection closed)
2021-06-26 06:00:54 +0200zaquest(~notzaques@5.128.210.178) (Remote host closed the connection)
2021-06-26 06:02:11 +0200zaquest(~notzaques@5.128.210.178)
2021-06-26 06:12:06 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-26 06:12:17 +0200stevenxl(~stevenlei@174.128.182.196) (Ping timeout: 268 seconds)
2021-06-26 06:13:56 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-06-26 06:14:49 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 06:19:31 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 258 seconds)
2021-06-26 06:20:40 +0200 <janus> ezzieyguywuf: i have heard https://github.com/inotify-tools/inotify-tools recommended, you can use it to launch make
2021-06-26 06:21:16 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-06-26 06:21:52 +0200dunkeln(~dunkeln@188.71.193.140)
2021-06-26 06:23:17 +0200 <ezzieyguywuf> janus: thanks for the tip
2021-06-26 06:23:18 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
2021-06-26 06:23:21 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
2021-06-26 06:27:26 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Ping timeout: 244 seconds)
2021-06-26 06:30:53 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2021-06-26 06:31:43 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-06-26 06:32:09 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
2021-06-26 06:37:11 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2021-06-26 06:42:31 +0200myShoggoth(~myShoggot@75.164.29.44) (Ping timeout: 258 seconds)
2021-06-26 06:45:26 +0200derelict(~derelict@user/derelict) (Ping timeout: 272 seconds)
2021-06-26 06:46:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-06-26 06:46:42 +0200derelict(~derelict@user/derelict)
2021-06-26 07:01:16 +0200MorrowM(~MorrowM_@147.161.9.7) (Ping timeout: 252 seconds)
2021-06-26 07:08:21 +0200Codaraxis__(~Codaraxis@193.32.126.161)
2021-06-26 07:12:17 +0200Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 250 seconds)
2021-06-26 07:16:04 +0200nerdypepper(~nerdypepp@152.67.162.71) (Quit: bye)
2021-06-26 07:18:16 +0200nerdypepper(~nerdypepp@152.67.162.71)
2021-06-26 07:18:35 +0200nerdypepper(~nerdypepp@152.67.162.71) (Client Quit)
2021-06-26 07:18:50 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Quit: Leaving.)
2021-06-26 07:18:55 +0200jenkems(~jenkems@226.148.192.35.bc.googleusercontent.com) (Quit: leaving)
2021-06-26 07:19:20 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-26 07:19:56 +0200 <sm[m]> ezzieyguywuf: entr (search for entrproject); visual studio / JetBrains ide probably
2021-06-26 07:20:44 +0200juhp(~juhp@128.106.188.66) (Ping timeout: 268 seconds)
2021-06-26 07:22:08 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-06-26 07:22:21 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-06-26 07:28:18 +0200Guest9(~Guest9@103.86.19.137)
2021-06-26 07:28:55 +0200nerdypepper(~nerdypepp@152.67.162.71)
2021-06-26 07:32:39 +0200xff0x(~xff0x@2001:1a81:5302:7b00:7b9e:b34d:db0e:110c) (Ping timeout: 250 seconds)
2021-06-26 07:33:36 +0200xff0x(~xff0x@2001:1a81:5302:7b00:933b:b446:f13f:917e)
2021-06-26 07:39:39 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4)
2021-06-26 07:42:55 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-06-26 07:47:38 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 265 seconds)
2021-06-26 07:47:56 +0200MQ-17J(~MQ-17J@8.21.10.15)
2021-06-26 07:49:16 +0200argento(~argent0@168-227-97-29.ptr.westnet.com.ar) (Remote host closed the connection)
2021-06-26 07:55:51 +0200hmmmas(~chenqisu1@183.217.200.246)
2021-06-26 07:58:16 +0200dunkeln(~dunkeln@188.71.193.140) (Ping timeout: 272 seconds)
2021-06-26 07:59:09 +0200nerdypepper(~nerdypepp@152.67.162.71) (Quit: bye)
2021-06-26 08:02:06 +0200nerdypepper(~nerdypepp@152.67.162.71)
2021-06-26 08:05:14 +0200 <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?
2021-06-26 08:13:15 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
2021-06-26 08:14:40 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-06-26 08:16:41 +0200pera(~pera@user/pera)
2021-06-26 08:17:29 +0200smokey991(sid369395@id-369395.brockwell.irccloud.com)
2021-06-26 08:25:57 +0200xff0x(~xff0x@2001:1a81:5302:7b00:933b:b446:f13f:917e) (Ping timeout: 250 seconds)
2021-06-26 08:26:46 +0200xff0x(~xff0x@2001:1a81:5302:7b00:dba5:5569:ccc4:c781)
2021-06-26 08:26:49 +0200Guest9(~Guest9@103.86.19.137) (Ping timeout: 250 seconds)
2021-06-26 08:28:40 +0200pera(~pera@user/pera) (Quit: leaving)
2021-06-26 08:30:18 +0200gehmehgeh(~user@user/gehmehgeh)
2021-06-26 08:37:03 +0200juhp(~juhp@bb116-14-48-29.singnet.com.sg)
2021-06-26 08:42:08 +0200MQ-17J(~MQ-17J@8.21.10.15) (Ping timeout: 268 seconds)
2021-06-26 08:42:10 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-26 08:42:29 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-26 08:42:44 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-26 08:45:34 +0200dunkeln_(~dunkeln@188.71.193.140)
2021-06-26 08:46:10 +0200qbt(~edun@user/edun)
2021-06-26 08:47:37 +0200wei2912(~wei2912@112.199.250.21) (Ping timeout: 250 seconds)
2021-06-26 08:48:34 +0200qbt(~edun@user/edun) (Client Quit)
2021-06-26 08:55:35 +0200nerdypepper(~nerdypepp@152.67.162.71) (Quit: bye)
2021-06-26 08:55:35 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-26 08:57:30 +0200laguneucl(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4)
2021-06-26 08:58:18 +0200chomwitt(~Pitsikoko@2a02:587:dc0b:0:d8f7:cdfe:4658:bec4) (Ping timeout: 244 seconds)
2021-06-26 08:58:20 +0200elf_fortrez(~elf_fortr@adsl-72-50-4-54.prtc.net)
2021-06-26 09:02:46 +0200nerdypepper(~nerdypepp@152.67.162.71)
2021-06-26 09:07:06 +0200wei2912(~wei2912@112.199.250.21)
2021-06-26 09:11:10 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-26 09:12:29 +0200hendursaga(~weechat@user/hendursaga)
2021-06-26 09:12:38 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-06-26 09:13:58 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 09:15:14 +0200lavaman(~lavaman@98.38.249.169)
2021-06-26 09:16:54 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-06-26 09:17:07 +0200arjun(~user@user/arjun)
2021-06-26 09:18:24 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds)
2021-06-26 09:19:35 +0200v01d4lph4(~v01d4lph4@122.160.65.250)
2021-06-26 09:19:35 +0200v01d4lph4(~v01d4lph4@122.160.65.250) (Changing host)
2021-06-26 09:19:35 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-26 09:19:58 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 272 seconds)
2021-06-26 09:22:07 +0200acidjnk(~acidjnk@p200300d0c72b9545f908228849627247.dip0.t-ipconnect.de)
2021-06-26 09:25:04 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-06-26 09:26:47 +0200arjun(~user@user/arjun) (Remote host closed the connection)
2021-06-26 09:35:32 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-26 09:36:06 +0200teaSlurper(~chris@81.96.113.213)
2021-06-26 09:36:35 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 250 seconds)
2021-06-26 09:40:44 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2021-06-26 09:40:53 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-06-26 09:41:34 +0200Guest9(~Guest9@103.86.19.137)
2021-06-26 09:42:26 +0200 <Guest9> " something is intact=still same", how to represent this statement in diagram/sketch form?
2021-06-26 09:42:29 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-06-26 09:48:10 +0200dajoer(~david@user/gvx) (Quit: leaving)
2021-06-26 09:49:12 +0200TFL(~user@64.114.96.246)
2021-06-26 09:53:03 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-26 09:58:13 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2021-06-26 10:00:09 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-26 10:01:05 +0200dmang(~dmang@047-032-148-170.res.spectrum.com) (Ping timeout: 258 seconds)
2021-06-26 10:02:19 +0200dmang(~dmang@user/dmang)
2021-06-26 10:07:28 +0200dmang(~dmang@user/dmang) (Ping timeout: 272 seconds)
2021-06-26 10:09:46 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 244 seconds)
2021-06-26 10:14:48 +0200 <tomsmeding> Is there a sensible precedence value for the '->' type construction operator?
2021-06-26 10:14:50 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Remote host closed the connection)
2021-06-26 10:15:00 +0200dmang(~dmang@user/dmang)
2021-06-26 10:15:16 +0200 <tomsmeding> in the same list as where '+' has precedence value 6
2021-06-26 10:18:04 +0200lavaman(~lavaman@98.38.249.169)
2021-06-26 10:18:35 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-26 10:19:14 +0200 <ephemient> -∞?
2021-06-26 10:20:46 +0200allbery_b(~geekosaur@xmonad/geekosaur) (Ping timeout: 272 seconds)
2021-06-26 10:20:49 +0200 <tomsmeding> well, 'it + 1' should have a sensible value that is distinct from it
2021-06-26 10:21:01 +0200 <tomsmeding> given that I would like to use it in a showsPrec-like setting :p
2021-06-26 10:22:04 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-06-26 10:22:05 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-06-26 10:22:09 +0200 <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
2021-06-26 10:22:33 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 258 seconds)
2021-06-26 10:33:43 +0200hendursaga(~weechat@user/hendursaga)
2021-06-26 10:36:36 +0200Guest9(~Guest9@103.86.19.137) (Quit: Connection closed)
2021-06-26 10:44:58 +0200 <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.
2021-06-26 10:46:05 +0200lavaman(~lavaman@98.38.249.169)
2021-06-26 10:46:21 +0200 <Cajun> its terminating normally, the terminal doesnt specify an abnormal exit code afaik
2021-06-26 10:46:40 +0200 <Cajun> i am on WSL if that matters for the profiling, but i dont image it does
2021-06-26 10:47:25 +0200elf_fortrez(~elf_fortr@adsl-72-50-4-54.prtc.net) (Ping timeout: 246 seconds)
2021-06-26 10:50:26 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-06-26 10:51:39 +0200fef(~thedawn@user/thedawn)
2021-06-26 10:54:33 +0200dunkeln_(~dunkeln@188.71.193.140) (Ping timeout: 244 seconds)
2021-06-26 10:56:43 +0200dunkeln_(~dunkeln@94.129.65.28)
2021-06-26 11:02:22 +0200Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 246 seconds)
2021-06-26 11:03:31 +0200Feuermagier(~Feuermagi@user/feuermagier)
2021-06-26 11:03:40 +0200maerwald(~maerwald@mail.hasufell.de) (Changing host)
2021-06-26 11:03:40 +0200maerwald(~maerwald@user/maerwald)
2021-06-26 11:03:57 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-06-26 11:06:13 +0200elf_fortrez(~elf_fortr@adsl-72-50-6-22.prtc.net)
2021-06-26 11:07:40 +0200Schrostfutz(~Schrostfu@p5de88aa6.dip0.t-ipconnect.de)
2021-06-26 11:09:16 +0200Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2021-06-26 11:09:49 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Quit: Leaving for a break - theLounge)
2021-06-26 11:10:05 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon)
2021-06-26 11:10:36 +0200 <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
2021-06-26 11:10:36 +0200 <Schrostfutz> use-case seems quite common to me, especially in a functional language. Or is that assumption wrong?
2021-06-26 11:15:16 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
2021-06-26 11:18:04 +0200 <ChaiTRex> :t flip (all . flip id)
2021-06-26 11:18:05 +0200 <lambdabot> Foldable t => t (b -> Bool) -> b -> Bool
2021-06-26 11:18:43 +0200 <ChaiTRex> Schrostfutz: ^
2021-06-26 11:18:48 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-06-26 11:19:13 +0200 <Schrostfutz> What
2021-06-26 11:19:17 +0200 <shachaf> Yikes, don't write that.
2021-06-26 11:19:23 +0200 <Schrostfutz> *What's the reason for the `flip id`?
2021-06-26 11:19:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Ping timeout: 250 seconds)
2021-06-26 11:19:49 +0200 <ChaiTRex> You could also write: \ fs x -> and . map (\ f -> f x) $ fs
2021-06-26 11:20:17 +0200 <shachaf> That doesn't even seem to be addressng the question.
2021-06-26 11:21:44 +0200 <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.
2021-06-26 11:22:39 +0200 <shachaf> map ($ x) list is reasonable standard.
2021-06-26 11:23:16 +0200 <shachaf> Some people would probably suggest "sequence :: [a -> b] -> a -> [b]"
2021-06-26 11:23:22 +0200 <shachaf> But that's probably not that helpful.
2021-06-26 11:27:00 +0200 <Schrostfutz> shachaf: What sequence is that, the one I could find has the type `t (m a) -> m (t a)`
2021-06-26 11:27:16 +0200 <shachaf> That one.
2021-06-26 11:27:37 +0200 <shachaf> And that sort of confusion is why I wouldn't suggest it.
2021-06-26 11:30:58 +0200 <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
2021-06-26 11:32:14 +0200dunkeln_(~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
2021-06-26 11:32:47 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-26 11:33:07 +0200dunkeln_(~dunkeln@94.129.65.28)
2021-06-26 11:34:39 +0200 <ChaiTRex> Schrostfutz: Going with your solution, you can try: all ($ val) predicates
2021-06-26 11:34:42 +0200 <ChaiTRex> @src all
2021-06-26 11:34:42 +0200 <lambdabot> all p = and . map p
2021-06-26 11:34:51 +0200 <ChaiTRex> @src and
2021-06-26 11:34:51 +0200 <lambdabot> and = foldr (&&) True
2021-06-26 11:35:53 +0200 <dibblego> sequence predicates
2021-06-26 11:36:16 +0200 <dibblego> oh sorry, that discussion has already been had
2021-06-26 11:37:14 +0200 <Schrostfutz> ChaiTRex: Thanks!
2021-06-26 11:37:24 +0200gensyst(gensyst@user/gensyst)
2021-06-26 11:38:01 +0200 <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/
2021-06-26 11:38:12 +0200 <gensyst> Are you aware of any existing one for Haskell?
2021-06-26 11:38:28 +0200dunkeln_(~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
2021-06-26 11:40:21 +0200dunkeln_(~dunkeln@94.129.65.28)
2021-06-26 11:40:59 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-06-26 11:41:51 +0200 <juri_> I can potentially call error in any one of 200 places in my program. *sigh*
2021-06-26 11:43:48 +0200 <juri_> I've got my stan warnings down to 180, from over 500, so i guess that's progress.
2021-06-26 11:44:42 +0200dunkeln_(~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
2021-06-26 11:45:37 +0200dunkeln_(~dunkeln@94.129.65.28)
2021-06-26 11:49:18 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-06-26 11:50:46 +0200dunkeln_(~dunkeln@94.129.65.28) (Read error: Connection reset by peer)
2021-06-26 11:51:19 +0200dunkeln_(~dunkeln@94.129.65.28)
2021-06-26 11:54:34 +0200Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2021-06-26 11:54:51 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-06-26 11:58:29 +0200Codaraxis__(~Codaraxis@193.32.126.161) (Ping timeout: 265 seconds)
2021-06-26 12:02:25 +0200m7zs3gzw(~m7zs3gzw@178.155.6.220)
2021-06-26 12:03:05 +0200xsperry(~as@user/xsperry) (Remote host closed the connection)
2021-06-26 12:05:04 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 12:05:07 +0200Codaraxis__(~Codaraxis@193.32.126.154)
2021-06-26 12:08:41 +0200m7zs3gzw(~m7zs3gzw@178.155.6.220) (Read error: Connection reset by peer)
2021-06-26 12:08:57 +0200Codaraxis_(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 244 seconds)
2021-06-26 12:11:32 +0200dunkeln_(~dunkeln@94.129.65.28) (Remote host closed the connection)
2021-06-26 12:12:15 +0200gehmehgeh(~user@user/gehmehgeh)
2021-06-26 12:16:56 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
2021-06-26 12:17:13 +0200dunkeln_(~dunkeln@94.129.65.28)
2021-06-26 12:17:22 +0200elf_fortrez(~elf_fortr@adsl-72-50-6-22.prtc.net) (Ping timeout: 246 seconds)
2021-06-26 12:17:47 +0200Schrostfutz(~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-06-26 12:21:59 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Ping timeout: 272 seconds)
2021-06-26 12:22:52 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-06-26 12:22:54 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-06-26 12:23:24 +0200feliix42(~felix@gibbs.uberspace.de) (Quit: ZNC 1.8.2 - https://znc.in)
2021-06-26 12:23:36 +0200feliix42(~felix@gibbs.uberspace.de)
2021-06-26 12:24:15 +0200dhil(~dhil@195.213.192.47)
2021-06-26 12:24:40 +0200dunkeln_(~dunkeln@94.129.65.28) (Ping timeout: 252 seconds)
2021-06-26 12:25:32 +0200ph88(~ph88@2a02:8109:9e00:7e5c:7c55:3c65:74e1:3dc5)
2021-06-26 12:26:38 +0200dunkeln(~dunkeln@188.71.193.140)
2021-06-26 12:26:55 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-26 12:31:17 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-06-26 12:32:30 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-06-26 12:39:08 +0200noctux(~noctux@user/noctux) (Ping timeout: 252 seconds)
2021-06-26 12:40:23 +0200noctux(~noctux@user/noctux)
2021-06-26 12:45:17 +0200chexum(~chexum@gateway/tor-sasl/chexum) (Ping timeout: 244 seconds)
2021-06-26 12:45:52 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-26 12:47:42 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
2021-06-26 12:51:17 +0200kayprish(~kayprish@46.240.143.86)
2021-06-26 12:51:46 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se)
2021-06-26 12:55:03 +0200dunkeln(~dunkeln@188.71.193.140) (Ping timeout: 250 seconds)
2021-06-26 13:00:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-26 13:03:08 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Remote host closed the connection)
2021-06-26 13:03:22 +0200fef(~thedawn@user/thedawn) (Ping timeout: 244 seconds)
2021-06-26 13:03:28 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-26 13:03:41 +0200blackfield(~blackfiel@85.255.4.218) ()
2021-06-26 13:03:42 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4)
2021-06-26 13:03:47 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-06-26 13:05:28 +0200allbery_b(~geekosaur@xmonad/geekosaur) (Ping timeout: 258 seconds)
2021-06-26 13:05:58 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-26 13:08:03 +0200xff0x(~xff0x@2001:1a81:5302:7b00:dba5:5569:ccc4:c781) (Ping timeout: 250 seconds)
2021-06-26 13:08:20 +0200xff0x(~xff0x@185.65.135.235)
2021-06-26 13:08:36 +0200v01d4lph4(~v01d4lph4@user/v01d4lph4) (Ping timeout: 272 seconds)
2021-06-26 13:12:36 +0200Sornaensis(~Sornaensi@077213194163.dynamic.telenor.dk)
2021-06-26 13:15:57 +0200fef(~thedawn@user/thedawn)
2021-06-26 13:18:51 +0200dunkeln_(~dunkeln@188.71.193.140)
2021-06-26 13:20:46 +0200xff0x(~xff0x@185.65.135.235) (Ping timeout: 252 seconds)
2021-06-26 13:21:42 +0200parzema(~parzema@124.188.206.3)
2021-06-26 13:22:30 +0200xff0x(~xff0x@2001:1a81:5302:7b00:dba5:5569:ccc4:c781)
2021-06-26 13:25:17 +0200 <parzema> How would you decrypt encrypted data (in hex format) in Salsa20 cipher? If you have the key and nonce and the encrypted data?
2021-06-26 13:25:24 +0200 <parzema> In Haskell
2021-06-26 13:26:39 +0200 <hpc> same way i would in any other language - see if there's a package or command-line utility i can take advantage of
2021-06-26 13:26:51 +0200 <hpc> and if neither of those work, implement the algorithm
2021-06-26 13:27:29 +0200 <hpc> @hoogle Salsa20
2021-06-26 13:27:29 +0200 <lambdabot> Crypto.Nettle.Ciphers data SALSA20
2021-06-26 13:27:29 +0200 <lambdabot> Crypto.Nettle.Ciphers data ESTREAM_SALSA20
2021-06-26 13:27:35 +0200hmmmas(~chenqisu1@183.217.200.246) (Quit: Leaving.)
2021-06-26 13:27:36 +0200 <parzema> https://hackage.haskell.org/package/Z-Botan-0.4.0.0/docs/Z-Crypto-Cipher.html
2021-06-26 13:28:45 +0200blackfield(~blackfiel@85.255.4.218)
2021-06-26 13:29:10 +0200 <hpc> looks like you found it then
2021-06-26 13:29:34 +0200 <parzema> hpc it doesnt show any examples
2021-06-26 13:29:55 +0200 <sshine> typical
2021-06-26 13:30:09 +0200 <parzema> encrypting or decrypting examples
2021-06-26 13:31:01 +0200 <sshine> parzema, so there's decryptBlocks, and a hint that setBlockCipherKey must be called.
2021-06-26 13:31:55 +0200 <hpc> so what you're really asking is how to use that particular package?
2021-06-26 13:31:57 +0200 <hpc> https://hackage.haskell.org/package/Z-Botan-0.4.0.0/docs/Z-Crypto-Cipher.html#v:runStreamCipher
2021-06-26 13:32:11 +0200 <hpc> there's an example with the BIO function below that, maybe adapt that?
2021-06-26 13:32:36 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-26 13:33:22 +0200 <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
2021-06-26 13:34:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-26 13:36:49 +0200 <sshine> parzema, I suppose decryption depends on how it was encrypted (block or stream).
2021-06-26 13:37:21 +0200 <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?
2021-06-26 13:37:29 +0200 <parzema> just decrypting
2021-06-26 13:37:39 +0200 <parzema> the latter
2021-06-26 13:39:23 +0200TFL(~user@64.114.96.246) (Quit: ERC (IRC client for Emacs 27.2))
2021-06-26 13:39:58 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-06-26 13:41:51 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 250 seconds)
2021-06-26 13:41:56 +0200 <sshine> parzema, so since Salsa20 is a StreamCipherType, I suppose the streamCipherBIO example is a good starting point.
2021-06-26 13:42:46 +0200noctux(~noctux@user/noctux) (Ping timeout: 252 seconds)
2021-06-26 13:42:58 +0200 <sshine> parzema, it looks like you need to specify the input for setStreamCipherKey and setStreamCipherIV.
2021-06-26 13:43:06 +0200 <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
2021-06-26 13:43:24 +0200__monty__(~toonn@user/toonn)
2021-06-26 13:45:24 +0200jumper149(~jumper149@80.240.31.34)
2021-06-26 13:46:15 +0200 <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.
2021-06-26 13:46:50 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-26 13:46:58 +0200 <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
2021-06-26 13:49:35 +0200dogu(~dogu@84.51.63.109)
2021-06-26 13:50:37 +0200dogu(~dogu@84.51.63.109) (Remote host closed the connection)
2021-06-26 13:52:38 +0200noctux(~noctux@user/noctux)
2021-06-26 13:53:47 +0200 <maerwald> jumper149: check out `cabal-bounds`
2021-06-26 13:54:58 +0200 <parzema> oak- https://pastebin.com/8urm6mE6
2021-06-26 13:55:02 +0200 <Profpatsch> jumper149: henlo
2021-06-26 13:55:08 +0200 <parzema> Seems alot easier/shiorter to do it in python
2021-06-26 13:55:34 +0200 <parzema> sshine
2021-06-26 13:56:09 +0200euandreh(~euandreh@2804:14c:33:9fe5:c1e6:8279:92e9:57ec) (Ping timeout: 250 seconds)
2021-06-26 13:56:20 +0200 <parzema> thought it might have been shorter in haskell
2021-06-26 13:58:56 +0200 <jumper149> Profpatsch: hehe hello :)
2021-06-26 13:59:48 +0200noctux(~noctux@user/noctux) (Ping timeout: 265 seconds)
2021-06-26 13:59:54 +0200teaSlurper(~chris@81.96.113.213)
2021-06-26 14:01:14 +0200 <sshine> parzema, ease and brevity depend on prior experience.
2021-06-26 14:02:50 +0200 <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
2021-06-26 14:04:18 +0200fef(~thedawn@user/thedawn) (Quit: Leaving)
2021-06-26 14:05:27 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-06-26 14:07:35 +0200justsomeguy(~justsomeg@user/justsomeguy) (Client Quit)
2021-06-26 14:07:35 +0200azeem(~azeem@dynamic-adsl-94-34-9-28.clienti.tiscali.it) (Read error: Connection reset by peer)
2021-06-26 14:08:37 +0200azeem(~azeem@dynamic-adsl-94-34-9-28.clienti.tiscali.it)
2021-06-26 14:09:06 +0200Sornaensis(~Sornaensi@077213194163.dynamic.telenor.dk) (Ping timeout: 258 seconds)
2021-06-26 14:13:31 +0200chisui(~chisui@200116b8665ca200b4ead5d4214f5a59.dip.versatel-1u1.de)
2021-06-26 14:18:15 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
2021-06-26 14:22:57 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Ping timeout: 272 seconds)
2021-06-26 14:23:28 +0200Guest16(~Guest16@2409:4062:2d0b:99a1:76c8:3b6:4cad:7132)
2021-06-26 14:23:43 +0200 <Guest16> Sup
2021-06-26 14:24:11 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e)
2021-06-26 14:28:04 +0200mib_l4fizy(~9d298f71@ircip2.mibbit.com)
2021-06-26 14:28:32 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 14:28:39 +0200warnz(~warnz@2600:1700:77c0:5610:350e:4738:7a75:35e) (Ping timeout: 250 seconds)
2021-06-26 14:29:25 +0200dunkeln_(~dunkeln@188.71.193.140) (Ping timeout: 258 seconds)
2021-06-26 14:30:13 +0200 <mib_l4fizy> Hi..I need help regarding this: https://paste.tomsmeding.com/cWHnB2OJ
2021-06-26 14:33:09 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
2021-06-26 14:33:53 +0200 <chisui> Please include the place where you called `print` in your example
2021-06-26 14:34:08 +0200Guest16(~Guest16@2409:4062:2d0b:99a1:76c8:3b6:4cad:7132) (Quit: Client closed)
2021-06-26 14:36:07 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: gone to sleep. ZZZzzz…)
2021-06-26 14:36:36 +0200mib_l4fizy(~9d298f71@ircip2.mibbit.com) (Quit: https://mibbit.com Online IRC Client)
2021-06-26 14:36:44 +0200dunkeln(~dunkeln@188.71.193.140)
2021-06-26 14:38:40 +0200reedlepee(~9d298f71@ircip2.mibbit.com)
2021-06-26 14:39:11 +0200 <reedlepee> HI...could anyone help me with this: https://paste.tomsmeding.com/cWHnB2OJ
2021-06-26 14:40:30 +0200 <chisui> reedlepee The error is not in the code you shared. Please share the code that calls `print`
2021-06-26 14:40:55 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-26 14:41:32 +0200teaSlurper(~chris@81.96.113.213)
2021-06-26 14:42:17 +0200 <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
2021-06-26 14:42:33 +0200fef(~thedawn@user/thedawn)
2021-06-26 14:42:35 +0200derelict(~derelict@user/derelict) (Quit: WeeChat 3.2)
2021-06-26 14:43:51 +0200derelict(~derelict@user/derelict)
2021-06-26 14:43:58 +0200 <chisui> In what environment is your code compiled?
2021-06-26 14:44:24 +0200 <chisui> Are you compiling from the command line?
2021-06-26 14:45:46 +0200 <reedlepee> @chisui no...I created a file, pasted these lines and loaded it in ghci
2021-06-26 14:45:46 +0200 <lambdabot> Unknown command, try @list
2021-06-26 14:46:08 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 272 seconds)
2021-06-26 14:46:18 +0200 <sshine> reedlepee, ah, collatz :) https://github.com/exercism/haskell/blob/main/exercises/practice/collatz-conjecture/examples/succe…
2021-06-26 14:47:15 +0200stevenxl(~stevenlei@174.128.182.86)
2021-06-26 14:47:17 +0200 <reedlepee> Thanks! I realize I've a lot to learn and just can't modify code for other languages and expect it to work
2021-06-26 14:47:25 +0200lavaman(~lavaman@98.38.249.169)
2021-06-26 14:47:59 +0200 <chisui> ARGH, forgot to read the error message completely.
2021-06-26 14:50:57 +0200 <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 :)
2021-06-26 14:51:02 +0200 <sshine> reedlepee, instead of 'mod n 2 == 1', then 'odd n'
2021-06-26 14:51:33 +0200 <sshine> reedlepee, you can also use `quot` instead of `div` since you don't care about negative rounding :)
2021-06-26 14:51:37 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-06-26 14:52:07 +0200 <reedlepee> sshine oh yeah you're right hehe..thanks!
2021-06-26 14:53:03 +0200 <reedlepee> haskell is indeed very similar to gofer..now i think all FP might be similar to each other...thanks again guys..see ya!
2021-06-26 14:53:27 +0200reedlepee(~9d298f71@ircip2.mibbit.com) ()
2021-06-26 14:53:49 +0200 <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' :)
2021-06-26 14:54:26 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-06-26 14:55:31 +0200feliix42(~felix@gibbs.uberspace.de) (Ping timeout: 250 seconds)
2021-06-26 14:55:53 +0200AWizzArd(~code@user/awizzard) (Ping timeout: 272 seconds)
2021-06-26 15:01:06 +0200lavaman(~lavaman@98.38.249.169)
2021-06-26 15:03:18 +0200gensyst(gensyst@user/gensyst) (Quit: Leaving)
2021-06-26 15:03:40 +0200Alex_test(~al_test@178.34.163.142) (Quit: ;-)
2021-06-26 15:04:07 +0200AlexZenon(~alzenon@178.34.163.142) ()
2021-06-26 15:04:19 +0200AlexNoo(~AlexNoo@178.34.163.142) (Quit: Leaving)
2021-06-26 15:05:17 +0200killsushi(~killsushi@user/killsushi) (Quit: Leaving)
2021-06-26 15:08:08 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2021-06-26 15:10:06 +0200AgentM(~agentm@pool-162-83-130-212.nycmny.fios.verizon.net)
2021-06-26 15:11:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-26 15:11:28 +0200shapr(~user@2601:7c0:8180:89d0:903c:7e54:945b:c68c) (Ping timeout: 272 seconds)
2021-06-26 15:17:01 +0200acidjnk(~acidjnk@p200300d0c72b9545f908228849627247.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2021-06-26 15:18:12 +0200teaSlurper(~chris@81.96.113.213)
2021-06-26 15:19:48 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving)
2021-06-26 15:22:20 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3-dev)
2021-06-26 15:22:52 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 272 seconds)
2021-06-26 15:23:58 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-06-26 15:24:53 +0200AlexZenon(~alzenon@178.34.163.142)
2021-06-26 15:27:23 +0200Alex_test(~al_test@178.34.163.142)
2021-06-26 15:27:48 +0200Deide(~Deide@wire.desu.ga)
2021-06-26 15:27:48 +0200Deide(~Deide@wire.desu.ga) (Changing host)
2021-06-26 15:27:48 +0200Deide(~Deide@user/deide)
2021-06-26 15:28:17 +0200AlexNoo(~AlexNoo@178.34.163.142)
2021-06-26 15:32:18 +0200is7s(~is7s@2a01:4b00:895f:3d00:fd08:7a4b:2db3:57e3) (Quit: Client closed)
2021-06-26 15:39:50 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-06-26 15:40:30 +0200en30(~en30@p6356230-ipngn31101marunouchi.tokyo.ocn.ne.jp)
2021-06-26 15:40:45 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Client Quit)
2021-06-26 15:41:05 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-06-26 15:41:28 +0200Schrostfutz(~Schrostfu@p5de88aa6.dip0.t-ipconnect.de)
2021-06-26 15:42:30 +0200neurocyte57(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-06-26 15:46:58 +0200xsperry(~as@user/xsperry)
2021-06-26 15:49:48 +0200hegstal_(~hegstal@2a02:c7f:7604:8a00:1f42:2755:1fbb:af5c)
2021-06-26 15:50:01 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-06-26 15:53:28 +0200hegstal_hegstal
2021-06-26 15:57:25 +0200 <dmj`> shouldn't reportError show a compilation failure message, not just "compilation failed"
2021-06-26 16:00:03 +0200teaSlurper(~chris@81.96.113.213)
2021-06-26 16:03:31 +0200ukari(~ukari@user/ukari) (Remote host closed the connection)
2021-06-26 16:04:00 +0200ukari(~ukari@user/ukari)
2021-06-26 16:04:29 +0200bontaq(~user@ool-18e47f8d.dyn.optonline.net)
2021-06-26 16:04:30 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-06-26 16:04:36 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-26 16:04:54 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 268 seconds)
2021-06-26 16:09:28 +0200TranquilEcho(~grom@user/tranquilecho)
2021-06-26 16:10:20 +0200 <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
2021-06-26 16:10:23 +0200 <TheCommieDuck> solve it?
2021-06-26 16:11:17 +0200keutoi(~keutoi@157.48.247.91)
2021-06-26 16:12:02 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-06-26 16:14:50 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-06-26 16:17:04 +0200keutoi(~keutoi@157.48.247.91) (Ping timeout: 265 seconds)
2021-06-26 16:17:59 +0200feliix42(~felix@gibbs.uberspace.de)
2021-06-26 16:18:40 +0200keutoi(~keutoi@106.200.184.21)
2021-06-26 16:19:38 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
2021-06-26 16:20:00 +0200 <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?
2021-06-26 16:21:59 +0200 <dmj`> oh nvm, its reporting now
2021-06-26 16:24:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Ping timeout: 272 seconds)
2021-06-26 16:26:24 +0200 <Schrostfutz> Ah, nvm, spotted it: my function definition yielded infinite recursion
2021-06-26 16:27:10 +0200zebrag(~chris@user/zebrag)
2021-06-26 16:30:01 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 16:34:30 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 268 seconds)
2021-06-26 16:34:56 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
2021-06-26 16:37:49 +0200myShoggoth(~myShoggot@75.164.29.44)
2021-06-26 16:38:35 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-06-26 16:42:46 +0200Gurkenglas(~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de)
2021-06-26 16:43:20 +0200teaSlurper(~chris@81.96.113.213)
2021-06-26 16:47:44 +0200unyu(~pyon@user/pyon) (Quit: WeeChat 3.2)
2021-06-26 16:49:00 +0200neurocyte57(~neurocyte@45.136.170.248)
2021-06-26 16:49:00 +0200neurocyte57(~neurocyte@45.136.170.248) (Changing host)
2021-06-26 16:49:00 +0200neurocyte57(~neurocyte@user/neurocyte)
2021-06-26 16:58:21 +0200mc47(~mc47@xmonad/TheMC47)
2021-06-26 16:59:44 +0200Zorgon_Zorgon
2021-06-26 17:00:26 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-06-26 17:01:55 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-26 17:02:45 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.227.207) (Remote host closed the connection)
2021-06-26 17:04:21 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-26 17:05:32 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-06-26 17:05:34 +0200bitmapper(uid464869@id-464869.tooting.irccloud.com)
2021-06-26 17:07:25 +0200GIANTWORLDKEEPER(~pjetcetal@2.95.227.207)
2021-06-26 17:07:47 +0200keutoi(~keutoi@106.200.184.21) (Quit: leaving)
2021-06-26 17:13:40 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-06-26 17:14:48 +0200machinedgod(~machinedg@24.105.81.50)
2021-06-26 17:15:04 +0200dunkeln(~dunkeln@188.71.193.140) (Ping timeout: 265 seconds)
2021-06-26 17:20:40 +0200vicfred(~vicfred@user/vicfred)
2021-06-26 17:22:36 +0200myShoggoth(~myShoggot@75.164.29.44) (Ping timeout: 268 seconds)
2021-06-26 17:25:08 +0200romes87(~romes@44.190.189.46.rev.vodafone.pt)
2021-06-26 17:25:29 +0200noctux(~noctux@user/noctux)
2021-06-26 17:25:29 +0200 <romes87> hey everyone, does anyone have experience with LogicT (backtracking) ?
2021-06-26 17:28:03 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2021-06-26 17:29:26 +0200MorrowM(~MorrowM_@147.161.9.7)
2021-06-26 17:29:30 +0200jakalx(~jakalx@base.jakalx.net)
2021-06-26 17:29:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-26 17:32:54 +0200Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 244 seconds)
2021-06-26 17:33:55 +0200noctux(~noctux@user/noctux) (Ping timeout: 265 seconds)
2021-06-26 17:36:53 +0200chisui(~chisui@200116b8665ca200b4ead5d4214f5a59.dip.versatel-1u1.de) (Quit: Client closed)
2021-06-26 17:43:08 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-26 17:43:51 +0200noctux(~noctux@user/noctux)
2021-06-26 17:44:34 +0200dunkeln_(~dunkeln@188.71.193.140)
2021-06-26 17:44:53 +0200econo(uid147250@user/econo)
2021-06-26 17:47:08 +0200euandreh(~euandreh@2804:14c:33:9fe5:fe7c:a1fa:94dc:c42a)
2021-06-26 17:47:22 +0200Sgeo(~Sgeo@user/sgeo)
2021-06-26 17:49:08 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-06-26 17:49:57 +0200teaSlurper(~chris@81.96.113.213) (Remote host closed the connection)
2021-06-26 17:50:20 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 17:54:58 +0200teaSlurper(~chris@81.96.113.213)
2021-06-26 17:56:34 +0200spicyrice(~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b)
2021-06-26 17:56:42 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-26 17:57:47 +0200Hanicef(~gustaf@78-71-43-30-no260.tbcn.telia.com)
2021-06-26 17:59:29 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 258 seconds)
2021-06-26 18:00:30 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 265 seconds)
2021-06-26 18:00:49 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-26 18:01:48 +0200egoist(~egoist@186.235.82.7)
2021-06-26 18:06:07 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-06-26 18:07:09 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net)
2021-06-26 18:12:08 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds)
2021-06-26 18:12:42 +0200myShoggoth(~myShoggot@75.164.29.44)
2021-06-26 18:12:57 +0200MQ-17J(~MQ-17J@8.21.10.15)
2021-06-26 18:14:31 +0200romes87(~romes@44.190.189.46.rev.vodafone.pt) (Quit: Client closed)
2021-06-26 18:17:51 +0200xff0x(~xff0x@2001:1a81:5302:7b00:dba5:5569:ccc4:c781) (Ping timeout: 244 seconds)
2021-06-26 18:18:42 +0200xff0x(~xff0x@2001:1a81:5302:7b00:a26f:1df0:afaa:6dfd)
2021-06-26 18:19:34 +0200Schrostfutz(~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2021-06-26 18:21:11 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
2021-06-26 18:21:28 +0200renzhi(~xp@2607:fa49:655f:a700::3902) (Quit: WeeChat 2.3)
2021-06-26 18:22:10 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.2)
2021-06-26 18:22:15 +0200renzhi(~xp@2607:fa49:655f:a700::3902)
2021-06-26 18:22:17 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-26 18:24:01 +0200en30(~en30@p6356230-ipngn31101marunouchi.tokyo.ocn.ne.jp) (Quit: Connection closed)
2021-06-26 18:25:33 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-06-26 18:25:41 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Ping timeout: 250 seconds)
2021-06-26 18:26:10 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-26 18:27:48 +0200euandreh(~euandreh@2804:14c:33:9fe5:fe7c:a1fa:94dc:c42a) (Quit: WeeChat 3.2)
2021-06-26 18:28:06 +0200euandreh(~euandreh@2804:14c:33:9fe5:fe7c:a1fa:94dc:c42a)
2021-06-26 18:29:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-06-26 18:29:39 +0200euandreh(~euandreh@2804:14c:33:9fe5:fe7c:a1fa:94dc:c42a) (Client Quit)
2021-06-26 18:29:59 +0200euandreh(~euandreh@2804:14c:33:9fe5:fe7c:a1fa:94dc:c42a)
2021-06-26 18:30:28 +0200nate1(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2021-06-26 18:32:05 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-06-26 18:36:02 +0200dunj3(~dunj3@2001:16b8:300e:4200:61ea:91d:5230:afc8)
2021-06-26 18:36:46 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-06-26 18:41:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-26 18:44:54 +0200dhil(~dhil@195.213.192.47) (Ping timeout: 272 seconds)
2021-06-26 18:46:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-26 18:46:55 +0200dunkeln_(~dunkeln@188.71.193.140) (Ping timeout: 250 seconds)
2021-06-26 18:48:23 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-26 18:48:47 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-06-26 18:49:03 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-26 18:49:32 +0200yauhsien(~yauhsien@61-231-57-141.dynamic-ip.hinet.net)
2021-06-26 18:53:55 +0200MorrowM(~MorrowM_@147.161.9.7) (Ping timeout: 258 seconds)
2021-06-26 18:55:27 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-26 18:56:28 +0200charukiewicz(~quassel@irouteince04.i.subnet.rcn.com) (Remote host closed the connection)
2021-06-26 18:57:20 +0200dhil(~dhil@80.208.56.181)
2021-06-26 18:57:48 +0200charukiewicz(~quassel@irouteince04.i.subnet.rcn.com)
2021-06-26 18:57:56 +0200 <dminuoso> TheCommieDuck: If this was recurring, you could write generic code to do this for you.
2021-06-26 18:58:05 +0200 <dminuoso> Or perhaps better yet TH code
2021-06-26 19:01:08 +0200motte_(~weechat@82.131.74.160.cable.starman.ee)
2021-06-26 19:02:31 +0200alex3(~alex3@BSN-77-82-41.static.siol.net) (Ping timeout: 250 seconds)
2021-06-26 19:03:53 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 258 seconds)
2021-06-26 19:05:32 +0200charukiewicz(~quassel@irouteince04.i.subnet.rcn.com) (Quit: No Ping reply in 180 seconds.)
2021-06-26 19:06:22 +0200Codaraxis(~Codaraxis@user/codaraxis)
2021-06-26 19:06:42 +0200charukiewicz(~quassel@irouteince04.i.subnet.rcn.com)
2021-06-26 19:09:17 +0200Codaraxis__(~Codaraxis@193.32.126.154) (Ping timeout: 268 seconds)
2021-06-26 19:13:18 +0200 <TheCommieDuck> I've gotten FooStore done in TH
2021-06-26 19:13:32 +0200 <TheCommieDuck> but it still feels like someone's probably done it properly before me
2021-06-26 19:14:13 +0200MQ-17J(~MQ-17J@8.21.10.15) (Ping timeout: 268 seconds)
2021-06-26 19:15:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-26 19:15:12 +0200charukiewicz(~quassel@irouteince04.i.subnet.rcn.com) (Quit: No Ping reply in 180 seconds.)
2021-06-26 19:16:27 +0200charukiewicz(~quassel@irouteince04.i.subnet.rcn.com)
2021-06-26 19:16:41 +0200alx741(~alx741@181.196.69.199) (Ping timeout: 268 seconds)
2021-06-26 19:17:05 +0200 <dminuoso> Mmm, this usage seems exotic to me.
2021-06-26 19:17:40 +0200alex3(~alex3@BSN-77-82-41.static.siol.net)
2021-06-26 19:18:51 +0200 <dminuoso> TheCommieDuck: How did you implement it? Turn each IntMap into a list of pairs, and then scan all intmaps in parallel?
2021-06-26 19:19:02 +0200 <dminuoso> (or rather, scan all lists)
2021-06-26 19:19:07 +0200teaSlurper(~chris@81.96.113.213)
2021-06-26 19:19:30 +0200dunkeln(~dunkeln@188.71.193.140)
2021-06-26 19:20:11 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-26 19:20:19 +0200mc47(~mc47@xmonad/TheMC47) (Read error: Connection reset by peer)
2021-06-26 19:20:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-06-26 19:20:48 +0200 <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
2021-06-26 19:22:32 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
2021-06-26 19:23:38 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2021-06-26 19:23:53 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-06-26 19:25:48 +0200 <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
2021-06-26 19:26:46 +0200spicyrice(~ubuntu@2600:1f11:52a:4400:ccbc:2b96:cabe:414b) (Quit: WeeChat 2.8)
2021-06-26 19:27:13 +0200 <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...
2021-06-26 19:27:14 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Ping timeout: 252 seconds)
2021-06-26 19:27:34 +0200 <dminuoso> motte_: heh, I think what you are looking for already is readMaybe
2021-06-26 19:27:38 +0200 <dminuoso> % :t readMaybe
2021-06-26 19:27:39 +0200 <yahb> dminuoso: ; <interactive>:1:1: error: Variable not in scope: readMaybe
2021-06-26 19:27:46 +0200talismanick(~user@2601:644:8502:d700::f19d) (Ping timeout: 256 seconds)
2021-06-26 19:27:49 +0200 <dminuoso> % import Text.Read (readMaybe)
2021-06-26 19:27:50 +0200 <yahb> dminuoso:
2021-06-26 19:27:51 +0200 <dminuoso> % :t readMaybe
2021-06-26 19:27:51 +0200 <yahb> dminuoso: forall {a}. Read a => String -> Maybe a
2021-06-26 19:28:43 +0200 <motte_> well, i have the possible types in a sum type (data Type in the example)
2021-06-26 19:28:57 +0200 <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.
2021-06-26 19:29:22 +0200alx741(~alx741@181.196.69.41)
2021-06-26 19:29:22 +0200 <dminuoso> So:
2021-06-26 19:29:27 +0200 <dminuoso> % :t isJust . readMaybe
2021-06-26 19:29:27 +0200 <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
2021-06-26 19:29:28 +0200 <int-e> ah, sorry, I missed the Type type
2021-06-26 19:29:35 +0200 <int-e> or rather, its significance
2021-06-26 19:29:50 +0200 <dmj`> motte_: it can work if you use Proxy as a witness to the type at runtime
2021-06-26 19:30:01 +0200 <dminuoso> % :t canParse :: Read a => (Proxy a) -> String -> Bool; canParse _ = isJust . readMaybe
2021-06-26 19:30:01 +0200 <yahb> dminuoso: ; <interactive>:1:50: error: parse error on input `;'
2021-06-26 19:30:04 +0200 <dminuoso> dmj`: Ah you beat me
2021-06-26 19:30:15 +0200 <dminuoso> % canParse :: Read a => (Proxy a) -> String -> Bool; canParse _ = isJust . readMaybe
2021-06-26 19:30:15 +0200 <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
2021-06-26 19:30:19 +0200 <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
2021-06-26 19:30:25 +0200 <dmj`> dminuoso: ¯\_(ツ)_/¯
2021-06-26 19:30:38 +0200 <dminuoso> % canParse :: forall a. Read a => (Proxy a) -> String -> Bool; canParse _ = isJust . readMaybe @a
2021-06-26 19:30:39 +0200 <yahb> dminuoso:
2021-06-26 19:30:41 +0200 <dminuoso> motte_: ^-
2021-06-26 19:32:12 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
2021-06-26 19:35:13 +0200 <motte_> hmm, which extensions does this need?
2021-06-26 19:35:27 +0200 <motte_> RankNTypes, TypeApplications, what else?
2021-06-26 19:35:53 +0200Schrostfutz(~Schrostfu@p5de88aa6.dip0.t-ipconnect.de)
2021-06-26 19:36:46 +0200 <geekosaur> ScopedTypeVariables?
2021-06-26 19:38:21 +0200 <motte_> ah, yes, got it
2021-06-26 19:39:08 +0200 <dmj`> motte_: no rank n types needed
2021-06-26 19:39:15 +0200 <dmj`> motte_: just STV and TA
2021-06-26 19:39:22 +0200 <dminuoso> motte_: You can avoid the usage of TypeApplications with a type ascriptions instead. You just need ScopedTypevariables
2021-06-26 19:40:35 +0200 <dminuoso> % canParse :: forall proxy a. Read a => proxy a -> String -> Bool; canParse _ = isJust . (readMaybe :: String -> Maybe a) -- motte_
2021-06-26 19:40:35 +0200 <yahb> dminuoso:
2021-06-26 19:41:12 +0200fef(~thedawn@user/thedawn) (Ping timeout: 244 seconds)
2021-06-26 19:44:16 +0200chexum(~chexum@gateway/tor-sasl/chexum)
2021-06-26 19:44:55 +0200 <motte_> so using this function would like: canParse (Proxy :: Proxy Int) "5"
2021-06-26 19:46:43 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 250 seconds)
2021-06-26 19:49:25 +0200 <motte_> what if the Int is a member of a sum type and also comes from a variable?
2021-06-26 19:49:42 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt)
2021-06-26 19:50:37 +0200cheater(~Username@user/cheater) (Ping timeout: 250 seconds)
2021-06-26 19:53:16 +0200 <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.
2021-06-26 19:53:28 +0200 <dmj`> motte_: you'll probably need an instance of Read
2021-06-26 19:54:12 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-26 19:54:15 +0200cheater(~Username@user/cheater)
2021-06-26 19:54:22 +0200egoist(~egoist@186.235.82.7) (Ping timeout: 268 seconds)
2021-06-26 19:54:54 +0200Hanicef(~gustaf@78-71-43-30-no260.tbcn.telia.com) (Quit: leaving)
2021-06-26 19:58:01 +0200 <euandreh> I see Real World Haskell has a chapter on parsec. Are there other books that cover it?
2021-06-26 19:58:11 +0200 <euandreh> (other than online articles, blog posts, etc.)
2021-06-26 20:00:35 +0200 <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.
2021-06-26 20:00:52 +0200egoist(~egoist@186.235.82.105)
2021-06-26 20:00:55 +0200 <dsal> Then I just started reading and writing parsers.
2021-06-26 20:01:05 +0200myShoggoth(~myShoggot@75.164.29.44) (Ping timeout: 268 seconds)
2021-06-26 20:01:22 +0200lavaman(~lavaman@98.38.249.169)
2021-06-26 20:01:50 +0200Jeanne-Kamikaze(~Jeanne-Ka@192.252.212.45)
2021-06-26 20:02:11 +0200 <dsal> euandreh: is there a particular thing that you're stuck on?
2021-06-26 20:03:11 +0200Schrostfutz(~Schrostfu@p5de88aa6.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-06-26 20:05:50 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 244 seconds)
2021-06-26 20:08:15 +0200 <euandreh> dsal: not really, I'm just interested in parsers in general, and I wanted to better learn Haskell through that.
2021-06-26 20:09:05 +0200 <euandreh> I've picked Parsec and AttoParsec, and dive into the implementation. I could just do that, but I really like learning via books :)
2021-06-26 20:09:21 +0200 <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.
2021-06-26 20:10:41 +0200 <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
2021-06-26 20:11:05 +0200 <dsal> Ah. megaparsec is basically that stuff you'd write anyway, but with good error messages. :)
2021-06-26 20:11:17 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
2021-06-26 20:11:46 +0200 <dsal> "the implementation" is mostly just functors, applicatives, alternatives, and some simple monads (/monadfail).
2021-06-26 20:12:00 +0200 <euandreh> Yes, MegaParsec also. I've looked at it too a bit, it seems nice
2021-06-26 20:17:29 +0200dunkeln(~dunkeln@188.71.193.140) (Ping timeout: 258 seconds)
2021-06-26 20:19:09 +0200 <dmj`> euandreh: http://dev.stephendiehl.com/fun/002_parsers.html
2021-06-26 20:19:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-26 20:20:51 +0200Guest9(~Guest9@103.86.19.137)
2021-06-26 20:26:44 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 20:27:09 +0200 <euandreh> ty
2021-06-26 20:27:19 +0200 <dmj`> yw
2021-06-26 20:28:49 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
2021-06-26 20:31:18 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds)
2021-06-26 20:31:33 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2021-06-26 20:34:55 +0200 <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
2021-06-26 20:35:03 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2021-06-26 20:40:11 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se)
2021-06-26 20:41:22 +0200teaSlurper(~chris@81.96.113.213)
2021-06-26 20:41:35 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Quit: Must not waste too much time here...)
2021-06-26 20:42:01 +0200 <flipchan> if anyone is looking for work: https://haskell.careers
2021-06-26 20:42:33 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se) (Client Quit)
2021-06-26 20:43:36 +0200peterhil(~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-26 20:43:46 +0200Ariakenom(~Ariakenom@c83-255-154-140.bredband.tele2.se)
2021-06-26 20:46:20 +0200flipchan(~yumman@88.131.87.132) (Changing host)
2021-06-26 20:46:20 +0200flipchan(~yumman@user/flipchan)
2021-06-26 20:46:30 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 272 seconds)
2021-06-26 20:49:28 +0200Morrow(~MorrowM_@147.161.9.7)
2021-06-26 20:51:13 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
2021-06-26 20:53:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-06-26 20:55:46 +0200 <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
2021-06-26 21:00:12 +0200 <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.
2021-06-26 21:00:55 +0200 <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
2021-06-26 21:00:58 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-06-26 21:02:25 +0200 <dmj`> I'd use Generics until performance is a problem, and if it never is, then great.
2021-06-26 21:03:14 +0200dunkeln(~dunkeln@188.71.193.140)
2021-06-26 21:05:36 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-06-26 21:13:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da) (Remote host closed the connection)
2021-06-26 21:14:25 +0200nurupo(~nurupo.ga@user/nurupo) (Quit: nurupo.ga)
2021-06-26 21:14:31 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c4e3:f231:bc2a:37da)
2021-06-26 21:15:28 +0200nurupo(~nurupo.ga@user/nurupo)
2021-06-26 21:17:41 +0200 <ChaiTRex> What's the latest GHC that cabal-install 3.4 supports?
2021-06-26 21:18:48 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Read error: Connection reset by peer)
2021-06-26 21:19:16 +0200pbrisbin(~patrick@pool-173-49-147-28.phlapa.fios.verizon.net) (Ping timeout: 252 seconds)
2021-06-26 21:19:35 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be)
2021-06-26 21:21:41 +0200kw(~user@2605:a601:a615:f600:601:15f2:ebf9:271)
2021-06-26 21:24:02 +0200Pickchea(~private@user/pickchea)
2021-06-26 21:24:10 +0200 <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` ?
2021-06-26 21:30:18 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1)
2021-06-26 21:30:46 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-26 21:31:36 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-26 21:31:39 +0200 <dminuoso> kw: Can you give some specific code that provokes an ambiguous type error with these classy lenses?
2021-06-26 21:34:09 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 258 seconds)
2021-06-26 21:34:27 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-06-26 21:36:08 +0200 <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
2021-06-26 21:36:38 +0200 <dminuoso> motte_: The binding is tied to the single last definition
2021-06-26 21:36:50 +0200 <dminuoso> Each declaration of `test` is separate
2021-06-26 21:37:33 +0200 <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 = ...;
2021-06-26 21:37:40 +0200 <geekosaur> where scopes over guards, not equations
2021-06-26 21:37:49 +0200 <motte_> oh
2021-06-26 21:38:11 +0200 <motte_> pretty odd that i havent ran into this before
2021-06-26 21:40:29 +0200 <EvanR> yeah where is not just a respelling of lett
2021-06-26 21:40:34 +0200 <EvanR> let
2021-06-26 21:41:34 +0200 <dminuoso> geekosaur: Mmm, "guards"?
2021-06-26 21:41:57 +0200 <glguy> f | this = that | the = other where a = b
2021-06-26 21:42:12 +0200 <dminuoso> Ahh. "Scopes over" meant something different than what I thought.
2021-06-26 21:42:17 +0200kw(~user@2605:a601:a615:f600:601:15f2:ebf9:271) (Quit: ERC (IRC client for Emacs 27.1))
2021-06-26 21:48:24 +0200 <dmj`> I wish quasiquoters could take arguments, [| query schema | select 2 + 2; |]
2021-06-26 21:48:42 +0200 <dminuoso> dmj`: let qq = query schema in [qq| ... |] ?
2021-06-26 21:48:54 +0200 <qrpnxz> speaking of, what does `class TypeBoy a a' | a' -> a where` mean? what is that pipe doing there?
2021-06-26 21:49:02 +0200 <dminuoso> qrpnxz: Its a functional dependency
2021-06-26 21:49:08 +0200 <qrpnxz> wut
2021-06-26 21:49:21 +0200 <dminuoso> https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/functional_dependencies.html
2021-06-26 21:49:54 +0200 <qrpnxz> ty sir
2021-06-26 21:49:55 +0200 <dminuoso> Mmm, the manual is very lacking here
2021-06-26 21:50:21 +0200 <dminuoso> Oh hah nevermind. Its all good
2021-06-26 21:50:29 +0200 <dminuoso> My browser misrendered apparently]
2021-06-26 21:50:53 +0200 <qrpnxz> lol
2021-06-26 21:51:29 +0200 <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
2021-06-26 21:52:22 +0200 <dminuoso> This is a very readable official report of our language: https://www.haskell.org/onlinereport/haskell2010/
2021-06-26 21:52:34 +0200 <qrpnxz> oh, this is only for extensions 😩️
2021-06-26 21:52:46 +0200 <qrpnxz> didn't ghc already break compat with haskell 2010?
2021-06-26 21:52:53 +0200 <dmj`> dminuoso: well I'll be, some assembly required to pass the stage restriction, but fits the bill
2021-06-26 21:52:57 +0200 <dmj`> dminuoso: ty
2021-06-26 21:52:57 +0200 <qrpnxz> eh better than nothing ig
2021-06-26 21:53:38 +0200 <dminuoso> qrpnxz: Well, there's some minor edges where GHC is not fully Haskell2010 compliant, but they can be mostly glossed over.
2021-06-26 21:53:39 +0200 <davean> qrpnxz: Not really in a meaningful way.
2021-06-26 21:53:51 +0200 <qrpnxz> alright :)
2021-06-26 21:54:37 +0200teaSlurper(~chris@81.96.113.213)
2021-06-26 21:55:40 +0200 <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
2021-06-26 21:55:45 +0200 <qrpnxz> cause it'd be pretty cool
2021-06-26 21:55:55 +0200 <davean> qrpnxz: It would be
2021-06-26 21:56:59 +0200 <dminuoso> I think it would be mostly inconsequential.
2021-06-26 21:58:19 +0200xkuru(~xkuru@user/xkuru)
2021-06-26 21:58:48 +0200 <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
2021-06-26 21:58:59 +0200teaSlurper(~chris@81.96.113.213) (Ping timeout: 244 seconds)
2021-06-26 21:59:21 +0200 <dminuoso> Even if -Wall was included -Wall, Im not convinced most people actually have -Wall turned on.
2021-06-26 21:59:32 +0200 <qrpnxz> i like that it would make it impossible for pure /= return and such
2021-06-26 21:59:46 +0200 <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.
2021-06-26 22:00:29 +0200chisui(~chisui@200116b8665ca2000dd322c548f95515.dip.versatel-1u1.de)
2021-06-26 22:00:30 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-26 22:01:03 +0200dunkeln(~dunkeln@188.71.193.140) (Ping timeout: 250 seconds)
2021-06-26 22:01:24 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-26 22:03:20 +0200 <dmj`> maralorn: haskell programs are too big to fail
2021-06-26 22:03:25 +0200 <qrpnxz> lol
2021-06-26 22:06:07 +0200 <spruit11> or too big to succeed
2021-06-26 22:06:53 +0200mikoto-chan(~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 268 seconds)
2021-06-26 22:08:03 +0200 <dminuoso> dmj`: Do you think we get government bailouts when GHC no longer compiles our programs?
2021-06-26 22:08:49 +0200 <dminuoso> Considering the presence of Haskell in fintech, who knows...
2021-06-26 22:09:04 +0200dunkeln_(~dunkeln@188.71.193.140)
2021-06-26 22:09:16 +0200 <chisui> Before that happens they would have to provide Java Apps with RAM.
2021-06-26 22:09:31 +0200 <dmj`> dminuoso: If you're in a higher-kinded class then yes.
2021-06-26 22:10:18 +0200dunkeln_(~dunkeln@188.71.193.140) (Client Quit)
2021-06-26 22:15:15 +0200 <dmj`> dminuoso: I'm working on a project to type check SQL queries against a SQL schema generated using GHC.Generics
2021-06-26 22:15:25 +0200 <dmj`> in a quasi quoter
2021-06-26 22:16:03 +0200Guest9(~Guest9@103.86.19.137) (Quit: Connection closed)
2021-06-26 22:19:12 +0200acidjnk(~acidjnk@p200300d0c72b9515dd29d5fa98a40466.dip0.t-ipconnect.de)
2021-06-26 22:24:21 +0200 <qrpnxz> '
2021-06-26 22:28:09 +0200iridescent(~iridescen@41337027.cst.lightpath.net)
2021-06-26 22:28:17 +0200 <iridescent> anyone have a good explanation to algebraic effects?
2021-06-26 22:28:25 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-26 22:28:26 +0200 <iridescent> i don't really want to read the original paper
2021-06-26 22:28:36 +0200 <iridescent> i tried and it was too dense :(
2021-06-26 22:29:36 +0200 <davean> iridescent: what level do you want it at? That matters a lot
2021-06-26 22:29:44 +0200 <iridescent> oh, i'm a complete beginner
2021-06-26 22:29:58 +0200 <iridescent> people were talking about it at a PL discussion
2021-06-26 22:30:01 +0200 <iridescent> and i got curious :)
2021-06-26 22:30:30 +0200 <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.
2021-06-26 22:30:41 +0200 <davean> iridescent: ok, then "effects" = things happen, "algebraic" = you get laws about how they interact
2021-06-26 22:30:54 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-26 22:31:01 +0200 <iridescent> oh oops i meant like, do you have a good article that explains it :P
2021-06-26 22:31:08 +0200 <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
2021-06-26 22:33:06 +0200fizbin(~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
2021-06-26 22:35:22 +0200falafel(~falafel@pool-96-255-70-50.washdc.fios.verizon.net)
2021-06-26 22:42:43 +0200 <dsal> qrpnxz: what would `fold1` look like?
2021-06-26 22:43:20 +0200 <qrpnxz> it would take a foldable of semigroups and give you a semigroup
2021-06-26 22:43:31 +0200 <dsal> Oh. There's one in semigroupoids that does that.
2021-06-26 22:44:12 +0200 <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
2021-06-26 22:44:42 +0200 <dsal> Is it partial? The signature isn't super clear.
2021-06-26 22:44:55 +0200 <qrpnxz> not sure what you are asking sorry
2021-06-26 22:45:54 +0200 <dsal> > foldl1 (+) [] :: Int -- foldl1 is partial
2021-06-26 22:45:55 +0200 <lambdabot> *Exception: Prelude.foldl1: empty list
2021-06-26 22:46:08 +0200 <dsal> But the one in semigroups isn't defined for [], so that's probably fine.
2021-06-26 22:46:29 +0200 <dsal> It has a special typeclass `Foldable1`
2021-06-26 22:46:31 +0200 <qrpnxz> it would error on empty foldable since semigroup has no mempty
2021-06-26 22:46:37 +0200 <qrpnxz> like foldl1 and foldr1
2021-06-26 22:46:45 +0200 <dsal> Yes, those are partial functions. Partial functions are bad. :)
2021-06-26 22:47:08 +0200 <qrpnxz> well how do you say "give me a nonempty foldable" :)
2021-06-26 22:47:15 +0200 <qrpnxz> no way currenty
2021-06-26 22:47:16 +0200 <dsal> @hoogle NonEmpty
2021-06-26 22:47:16 +0200 <lambdabot> module Data.List.NonEmpty
2021-06-26 22:47:16 +0200 <lambdabot> Data.List.NonEmpty data NonEmpty a
2021-06-26 22:47:16 +0200 <lambdabot> GHC.Base data NonEmpty a
2021-06-26 22:47:21 +0200 <qrpnxz> NonEmpty is for lists no?
2021-06-26 22:47:41 +0200 <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
2021-06-26 22:47:47 +0200Jeanne-Kamikaze(~Jeanne-Ka@192.252.212.45) (Quit: Leaving)
2021-06-26 22:48:46 +0200 <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
2021-06-26 22:49:31 +0200 <dsal> Well, fold1 is only not partial if the thing you're feeding it can't be empty.
2021-06-26 22:49:43 +0200 <dsal> So you just have to worry about the Foldable1 class lawfulness.
2021-06-26 22:49:48 +0200 <qrpnxz> right the only guarantee of that is the programmer promisses
2021-06-26 22:50:04 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-06-26 22:52:05 +0200 <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.
2021-06-26 22:52:35 +0200 <dsal> (and even then, it's technically not empty depending on what you're going to do with it)
2021-06-26 22:53:06 +0200SoF(~skius@user/skius) (Quit: Ping timeout (120 seconds))
2021-06-26 22:53:24 +0200SoF(~skius@user/skius)
2021-06-26 22:56:41 +0200dhil(~dhil@80.208.56.181) (Read error: Connection reset by peer)
2021-06-26 22:57:29 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-06-26 22:58:55 +0200chisui(~chisui@200116b8665ca2000dd322c548f95515.dip.versatel-1u1.de) (Ping timeout: 246 seconds)
2021-06-26 23:03:23 +0200Scotty_Trees(~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net)
2021-06-26 23:05:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-06-26 23:11:32 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2021-06-26 23:13:59 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-06-26 23:16:06 +0200gehmehgeh(~user@user/gehmehgeh)
2021-06-26 23:18:11 +0200eco(~ubuntu@ec2-54-201-230-197.us-west-2.compute.amazonaws.com) (Ping timeout: 250 seconds)
2021-06-26 23:19:27 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-06-26 23:30:47 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-06-26 23:33:57 +0200 <qrpnxz> would (Monad m, Monad t, Traversable t) => Compose m t always be a monad?
2021-06-26 23:35:06 +0200 <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)
2021-06-26 23:39:27 +0200norias(~jaredm@c-98-219-195-163.hsd1.pa.comcast.net) (Ping timeout: 268 seconds)
2021-06-26 23:42:04 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-06-26 23:43:22 +0200chisui(~chisui@200116b864537a005c14c63c4df5fc2e.dip.versatel-1u1.de)
2021-06-26 23:50:49 +0200m7zs3gzw(~m7zs3gzw@178.155.6.220)
2021-06-26 23:56:55 +0200m7zs3gzw(~m7zs3gzw@178.155.6.220) (Remote host closed the connection)
2021-06-26 23:58:40 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2021-06-26 23:59:11 +0200a6a45081-2b83(~aditya@106.214.225.112)
2021-06-26 23:59:44 +0200yoctocell(~user@h87-96-130-155.cust.a3fiber.se) (Ping timeout: 268 seconds)
2021-06-26 23:59:45 +0200 <a6a45081-2b83> {f::[Int];f=do{return 2; return 3;}}
2021-06-26 23:59:50 +0200 <a6a45081-2b83> f==[2,3] ??