2021/09/06

2021-09-06 00:00:32 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 245 seconds)
2021-09-06 00:04:03 +0200 <janus> i wrote them something about the lts version that they may consider upgrading from
2021-09-06 00:05:25 +0200acidjnk_new(~acidjnk@p5487d0ba.dip0.t-ipconnect.de)
2021-09-06 00:05:35 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-09-06 00:06:40 +0200o1lo01ol1o(~o1lo01ol1@bl13-86-242.dsl.telepac.pt) (Ping timeout: 240 seconds)
2021-09-06 00:07:41 +0200o1lo01ol1o(~o1lo01ol1@bl13-86-242.dsl.telepac.pt)
2021-09-06 00:08:44 +0200acidjnk_new3(~acidjnk@p200300d0c720307835a2456c1104dd43.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2021-09-06 00:09:54 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 00:10:01 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon)
2021-09-06 00:10:02 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 00:10:20 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 00:11:20 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-06 00:12:58 +0200madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 252 seconds)
2021-09-06 00:28:26 +0200acidjnk_new(~acidjnk@p5487d0ba.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-09-06 00:29:28 +0200cafkafk(~cafkafk@user/cafkafk) (Quit: WeeChat 3.1)
2021-09-06 00:29:35 +0200Erutuon(~Erutuon@user/erutuon)
2021-09-06 00:30:23 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 00:30:40 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 00:32:17 +0200o1lo01ol1o(~o1lo01ol1@bl13-86-242.dsl.telepac.pt) (Remote host closed the connection)
2021-09-06 00:33:08 +0200craige[m](~craigemcw@2001:470:69fc:105::35f1)
2021-09-06 00:33:52 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c1b9:a2b:77a8:fec7) (Remote host closed the connection)
2021-09-06 00:35:02 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c1b9:a2b:77a8:fec7)
2021-09-06 00:35:13 +0200Skyfire(~pyon@user/pyon) (Quit: WeeChat 3.2)
2021-09-06 00:39:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c1b9:a2b:77a8:fec7) (Ping timeout: 252 seconds)
2021-09-06 00:40:36 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-09-06 00:54:31 +0200striven(~striven@user/striven)
2021-09-06 00:55:15 +0200TranquilEcho(~grom@user/tranquilecho) (Quit: WeeChat 2.8)
2021-09-06 00:55:42 +0200frtdisdrv^(~frtdisdrv@68.101.54.227)
2021-09-06 00:56:09 +0200benin0369323(~benin@183.82.207.253) (Quit: Ping timeout (120 seconds))
2021-09-06 00:56:10 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 240 seconds)
2021-09-06 00:56:31 +0200benin0369323(~benin@183.82.207.253)
2021-09-06 00:59:37 +0200benin0369323(~benin@183.82.207.253) (Client Quit)
2021-09-06 01:01:26 +0200striven(~striven@user/striven) (Ping timeout: 256 seconds)
2021-09-06 01:11:08 +0200cjb(~cjb@user/cjb)
2021-09-06 01:19:36 +0200 <hexeme> Got that haskell hot-reloading working with Gloss
2021-09-06 01:19:38 +0200 <hexeme> pretty cool
2021-09-06 01:19:57 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection)
2021-09-06 01:22:55 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c1b9:a2b:77a8:fec7)
2021-09-06 01:24:06 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2021-09-06 01:25:20 +0200Natch(~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se)
2021-09-06 01:30:51 +0200 <janus> Lambda_Lifter on that Reddit thread wants to stick with 8.8.4 because they think that if 8.10.8 is released, HLS will switch to that, but it won't switch from 8.8.4.
2021-09-06 01:31:24 +0200zebrag(~chris@user/zebrag)
2021-09-06 01:31:26 +0200 <janus> does that make sense? it seems perverse to me that one would used an abandoned series just because HLS will continue to support its last release
2021-09-06 01:32:24 +0200 <geekosaur> I stuck to 8.10.4 which is still hls-supported… but then I don't actually use hls so I don't really care much
2021-09-06 01:33:01 +0200 <janus> i'm thinking, a new HLS is likely to drop 8.8.4 support. so by staying on HLS, you may be _unable_ to upgrade HLS
2021-09-06 01:33:07 +0200 <janus> *staying on 8.8
2021-09-06 01:33:38 +0200 <monochrom> But GHC HQ is really trying to avoid having a 8.10.8.
2021-09-06 01:33:57 +0200 <janus> right, i know. right now, i just want to argue against staying with 8.8.4 because i don't think it makes sense
2021-09-06 01:34:07 +0200 <int-e> monochrom: easy, just release 8.10.9 next?
2021-09-06 01:34:29 +0200 <janus> if 8.10.8 were to come out, and a new HLS comes out, surely that new HLS would support both 8.10.7, 8.10.8 ? so there is no advangage with sticking to 8.8.4
2021-09-06 01:34:52 +0200 <janus> there is actually a disadvantage, since the new HLS _more_ likely to not support 8.8.4
2021-09-06 01:35:36 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-09-06 01:35:40 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-06 01:35:40 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-06 01:35:40 +0200wroathe(~wroathe@user/wroathe)
2021-09-06 01:40:58 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-09-06 01:41:45 +0200[_](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-06 01:42:43 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Killed (NickServ (GHOST command used by [_])))
2021-09-06 01:43:01 +0200[_][itchyjunk]
2021-09-06 01:43:10 +0200nicbk(~nicbk@user/nicbk)
2021-09-06 01:44:37 +0200ulvarrefr(~user@185.24.53.152) (Remote host closed the connection)
2021-09-06 01:45:46 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 01:45:55 +0200 <janus> new HLS releases support multiple patch releases. I think the false assumption of Lambda_Lifter is that HLS somehow only supports the latest patch release. But that is not the case
2021-09-06 01:45:59 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 01:46:47 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 245 seconds)
2021-09-06 01:47:48 +0200 <geekosaur> maybe they're using ghcup and don't enable "show all versions" so they think only the latest release in each major version is supported at all?
2021-09-06 01:48:05 +0200 <geekosaur> except for those in the 3-major-versions window
2021-09-06 01:48:17 +0200 <geekosaur> er, 2-major-versions
2021-09-06 01:48:55 +0200ulvarrefr(~user@185.24.53.152)
2021-09-06 01:48:59 +0200 <janus> they mention a stack lts release and they mention VsCode. So I think the worry is really about VsCode autoupdating HLS. I don't know how the Stack version could be an issue since their Stack LTS should be fixed and would imply the exact GHC version used
2021-09-06 01:49:40 +0200lavaman(~lavaman@98.38.249.169)
2021-09-06 01:49:47 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-09-06 01:49:50 +0200 <janus> maybe the confusion is because you can probably write "lts-18" and you'll keep getting updated to patch GHC versions which HLS wouldn't support yet
2021-09-06 01:50:12 +0200 <janus> meanwhile, if you write "lts-16", you won't get that problem.
2021-09-06 01:50:21 +0200 <janus> is that correct?
2021-09-06 01:50:43 +0200 <geekosaur> dunno, I don't use stack
2021-09-06 01:51:54 +0200 <janus> it seems to be correct, search for "short-cut" here: https://docs.haskellstack.org/en/stable/GUIDE/
2021-09-06 01:57:32 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 256 seconds)
2021-09-06 01:57:49 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-09-06 01:57:49 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 01:58:04 +0200 <hololeap> hexeme: https://github.com/hololeap/gloss-fsnotify
2021-09-06 01:58:14 +0200 <hololeap> this was actually a bit trickier than I expected
2021-09-06 01:59:45 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-06 01:59:48 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2021-09-06 02:00:45 +0200Erutuon(~Erutuon@user/erutuon)
2021-09-06 02:00:58 +0200 <hololeap> gloss has to run on the main thread and you have to call exitSuccess from within that function you supply to animateIO
2021-09-06 02:01:06 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 02:01:30 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 02:19:35 +0200pavonia(~user@user/siracusa)
2021-09-06 02:20:28 +0200lavaman(~lavaman@98.38.249.169)
2021-09-06 02:20:28 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Read error: Connection reset by peer)
2021-09-06 02:22:22 +0200Katarushisu(~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
2021-09-06 02:24:40 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-09-06 02:25:31 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2021-09-06 02:26:08 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-06 02:26:25 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 02:31:35 +0200nicbk(~nicbk@user/nicbk) (Remote host closed the connection)
2021-09-06 02:31:57 +0200nicbk(~nicbk@user/nicbk)
2021-09-06 02:35:00 +0200frtdisdrv^(~frtdisdrv@68.101.54.227) (Remote host closed the connection)
2021-09-06 02:39:08 +0200nicbk(~nicbk@user/nicbk) (Remote host closed the connection)
2021-09-06 02:39:35 +0200nicbk(~nicbk@user/nicbk)
2021-09-06 02:42:27 +0200nehsou^(~nehsou@68.101.54.227)
2021-09-06 02:45:29 +0200slack1256(~slack1256@newharrisonhotel04.n.subnet.rcn.com)
2021-09-06 02:51:50 +0200nehsou^(~nehsou@68.101.54.227) (Remote host closed the connection)
2021-09-06 02:55:29 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-06 02:55:54 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-06 02:58:02 +0200alx741(~alx741@181.196.69.46) (Ping timeout: 245 seconds)
2021-09-06 03:05:53 +0200 <iqubic> I just wrote this, and I'm currently wondering if it will actually do a monadic fold of a tree. https://dpaste.com/E7FMGFT3A
2021-09-06 03:06:08 +0200 <iqubic> It typechecks, but I'm not sure if it will actually do the right thing.
2021-09-06 03:08:40 +0200cross(~cross@spitfire.i.gajendra.net) (Quit: leaving)
2021-09-06 03:09:15 +0200cross(~cross@spitfire.i.gajendra.net)
2021-09-06 03:11:19 +0200alx741(~alx741@186.178.109.96)
2021-09-06 03:12:00 +0200 <dsal> Tests are good for that sort of thing when you're unsure.
2021-09-06 03:12:33 +0200 <iqubic> I'm not actually sure how to test this. That's the issue.
2021-09-06 03:13:21 +0200 <iqubic> Is there an easy way to convert the examples here to something that works in a monadic context?
2021-09-06 03:13:22 +0200neurocyte4(~neurocyte@45.93.111.173)
2021-09-06 03:13:22 +0200neurocyte4(~neurocyte@45.93.111.173) (Changing host)
2021-09-06 03:13:22 +0200neurocyte4(~neurocyte@user/neurocyte)
2021-09-06 03:15:34 +0200neurocyte(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-09-06 03:15:34 +0200neurocyte4neurocyte
2021-09-06 03:15:48 +0200 <dsal> Well, you can just pick a monad and try it. e.g. does it work in the Maybe monad? But that feels a little backwards from how I normally do things. Typically, I need a thing and write the thing I need, and then perhaps generalize it, so the test would be the existing case.
2021-09-06 03:17:07 +0200 <dsal> @src foldM
2021-09-06 03:17:07 +0200 <lambdabot> foldM _ a [] = return a
2021-09-06 03:17:07 +0200 <lambdabot> foldM f a (x:xs) = f a x >>= \fax -> foldM f fax xs
2021-09-06 03:17:15 +0200nehsou^(~nehsou@68.101.54.227)
2021-09-06 03:17:29 +0200 <dsal> That's a case where @src isn't very useful.
2021-09-06 03:18:13 +0200 <dsal> The actual implementation is `foldM = foldlM`, thus clarifying things.
2021-09-06 03:19:18 +0200 <dsal> `foldlM f z0 xs = foldr c return xs z0 where c x k z = f z x >>= k`
2021-09-06 03:19:37 +0200 <dsal> Anyway, you just need to compare yours against that. QC can do that for you once you select your types.
2021-09-06 03:20:37 +0200xsperry(~as@user/xsperry) (Remote host closed the connection)
2021-09-06 03:22:14 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-06 03:22:57 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-09-06 03:23:14 +0200lavaman(~lavaman@98.38.249.169)
2021-09-06 03:24:50 +0200MQ-17J(~MQ-17J@8.21.10.6)
2021-09-06 03:27:38 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-09-06 03:27:53 +0200 <iqubic> dsal: There is a concrete usecase here. https://adventofcode.com/2017/day/7
2021-09-06 03:28:00 +0200 <iqubic> Basically the data is presented as a tree.
2021-09-06 03:28:13 +0200xff0x(~xff0x@2001:1a81:53d2:1d00:6afe:f077:c625:e6c4) (Ping timeout: 252 seconds)
2021-09-06 03:28:28 +0200 <iqubic> Each disk has a weight and certain other disk resting on top of them.
2021-09-06 03:28:45 +0200 <dsal> But you don't need to write foldM yourself, do you?
2021-09-06 03:28:54 +0200 <iqubic> Why not?
2021-09-06 03:29:11 +0200 <iqubic> is foldM a thing that exists?
2021-09-06 03:29:17 +0200 <dsal> :t foldM
2021-09-06 03:29:18 +0200 <lambdabot> (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
2021-09-06 03:29:43 +0200 <dsal> It looks just like yours.
2021-09-06 03:29:49 +0200 <dsal> (except the implementation)
2021-09-06 03:29:55 +0200xff0x(~xff0x@2001:1a81:5209:3600:cabf:37b:4141:3c8)
2021-09-06 03:30:03 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-09-06 03:30:03 +0200 <iqubic> Wait... if fold and foldM exist in foldable, then why does Data.Tree export foldTree?
2021-09-06 03:30:29 +0200 <geekosaur> historical?
2021-09-06 03:30:39 +0200 <byorgey> no, those are different. foldM is not really a fold (in the sense of a catamorphism). It basically flattens the tree into a list and then folds that.
2021-09-06 03:30:46 +0200 <geekosaur> Foldable is relatively recent,m especiallyt compared to Data.Tree
2021-09-06 03:31:16 +0200 <byorgey> but the version of foldM that iqubic wrote is not doing that, it is actually using the structure of the tree.
2021-09-06 03:31:33 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 03:31:55 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 03:32:16 +0200 <iqubic> Yeah, I'm working on adventofcode 2017 day 7. And I need to process the data from the leaves and work upward.
2021-09-06 03:32:41 +0200thelounge9230681(~thelounge@cpe-75-85-161-60.san.res.rr.com)
2021-09-06 03:33:12 +0200 <iqubic> byorgey: How does Data.Foldable's foldM differ from my foldTreeM?
2021-09-06 03:33:30 +0200 <dsal> If direction matters, it might be good to encode that in the name somewhere. Otherwise just foldM.
2021-09-06 03:34:23 +0200 <byorgey> iqubic: your foldTreeM can actually see and make use of the structure of the tree. For example, you could use your foldTreeM to compute the height of the tree (though you wouldn't need the M for that, of course).
2021-09-06 03:34:35 +0200 <iqubic> dsal: I'm not sure what you mean by "if direction matters".
2021-09-06 03:34:45 +0200 <byorgey> iqubic: but the foldM in Data.Foldable cannot do that, because it is equivalent to flattening the tree into a list and then folding over the list.
2021-09-06 03:35:08 +0200 <dsal> The implementations are different, but if the answers are also different, then that's a bit misleading. foldM is a left fold and yours kind of looks a little different in signature.
2021-09-06 03:35:23 +0200 <iqubic> How can one use foldTree to compute the height of the tree?
2021-09-06 03:35:27 +0200 <dsal> iqubic: You said you "need to process the data from the leaves and work upward" -- that's not something I'd expect from a general catamorphism.
2021-09-06 03:35:30 +0200 <byorgey> dsal: iqubic's foldTreeM does not have a direction.
2021-09-06 03:35:49 +0200 <dsal> byorgey: Yeah, but it sounds like it's expected to?
2021-09-06 03:35:51 +0200 <byorgey> that is exactly what a general catamorphism can do.
2021-09-06 03:36:15 +0200 <iqubic> dsal: No, actually, the signature I have is exactly what I need.
2021-09-06 03:36:17 +0200 <byorgey> dsal: I didn't get that impression. Why do you think that?
2021-09-06 03:37:01 +0200 <byorgey> iqubic: e.g. foldTreeM (\_ xs -> return (1 + maximum xs))
2021-09-06 03:37:13 +0200 <iqubic> Ah. I see. That's cool.
2021-09-06 03:37:14 +0200 <byorgey> except with a case to handle the empty list xs and return 0 in that case or something like that
2021-09-06 03:37:43 +0200 <dsal> We might be getting a little confused here. Why did I expect which part? I'd expect `foldM` to do the right thing. iqubic says "I need to process the data from the leaves and work upward" which sounds less general.
2021-09-06 03:37:56 +0200MQ-17J(~MQ-17J@8.21.10.6) (Read error: Connection reset by peer)
2021-09-06 03:38:07 +0200 <byorgey> dsal: you have it backwards. iqubic's foldTreeM is much more general than foldM.
2021-09-06 03:38:09 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving)
2021-09-06 03:38:23 +0200 <byorgey> foldM cannot work from the leaves upward. It can only work left to right, i.e. using an inorder traversal of the tree.
2021-09-06 03:38:25 +0200MQ-17J(~MQ-17J@8.21.10.6)
2021-09-06 03:38:33 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-06 03:39:12 +0200 <iqubic> I assume I can use my foldTreeM, let M ~ Writer, and then just use tell to output information in the middle of the fold. Is that right?
2021-09-06 03:39:53 +0200 <dsal> It's less general in that it only works with Tree. It's more general in that it leaks more stuff.
2021-09-06 03:40:21 +0200 <byorgey> when I say foldTreeM is more general than foldM, I mean that you can implement foldM using foldTreeM, but you cannot do the reverse.
2021-09-06 03:40:32 +0200 <iqubic> dsal: In this case, only working with Tree is fine.
2021-09-06 03:40:47 +0200 <dsal> byorgey: Ah, right. That makes sense.
2021-09-06 03:40:54 +0200 <byorgey> true, I was only thinking about trees. you're right that foldM is more general in the sense of working over any Foldable.
2021-09-06 03:41:49 +0200 <byorgey> There's also some potential confusion here over the fact that the *effects* in m happen from left-right in both foldM and foldTreeM.
2021-09-06 03:41:49 +0200MQ-17J(~MQ-17J@8.21.10.6) (Read error: Connection reset by peer)
2021-09-06 03:41:59 +0200MQ-17J(~MQ-17J@8.21.10.6)
2021-09-06 03:42:10 +0200 <iqubic> byorgey: That's fine here!
2021-09-06 03:42:31 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-09-06 03:43:20 +0200 <byorgey> wait, actually, that's not true! The effects in foldTreeM happen in the order of a postorder traversal.
2021-09-06 03:43:46 +0200 <byorgey> It really does makes sense to think of foldTreeM as working from the leaves up, i.e. it can only compute the result for a node once it has computed the results for all its children.
2021-09-06 03:43:52 +0200 <dsal> It seems a bit weird to me that the result isn't a Monoid. What does an empty tree do here?
2021-09-06 03:44:22 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-09-06 03:44:28 +0200 <iqubic> I'm not too sure actually what happens with an empty tree.
2021-09-06 03:44:33 +0200 <byorgey> Data.Tree trees are non-empty.
2021-09-06 03:44:44 +0200 <byorgey> data Tree a = Node a [Tree a]
2021-09-06 03:45:19 +0200 <dsal> I don't think I've actually used that structure.
2021-09-06 03:45:56 +0200 <dsal> Hmm... It looks like I did use it for something once.
2021-09-06 03:46:18 +0200 <byorgey> They're perfect when you need to model something hierarchical.
2021-09-06 03:46:22 +0200thelounge9230681(~thelounge@cpe-75-85-161-60.san.res.rr.com) (Ping timeout: 252 seconds)
2021-09-06 03:46:45 +0200thelounge9230681(~thelounge@cpe-75-85-161-60.san.res.rr.com)
2021-09-06 03:46:48 +0200 <byorgey> Such as the input for Advent of Code 2017 #7 =)
2021-09-06 03:47:03 +0200 <iqubic> Yeah, that's specifically why I'm using Tree.
2021-09-06 03:48:05 +0200 <dsal> I haven't done 2017 (though apparently I started and lost whatever work I did). I should do that with idle cycles.
2021-09-06 03:48:18 +0200 <byorgey> iqubic: you asked about using Writer in your treeFoldM, and yes, you can do that
2021-09-06 03:48:38 +0200 <byorgey> looks like I did it only through #15.
2021-09-06 03:49:29 +0200 <iqubic> Actually, containers uses a record for the Tree data structure, so you can use the "rootLabel :: Tree a -> a" and "subForest :: Tree a -> [Tree a]" functions for extracting the data. But that's isomorophic to the definition byorgey gave.
2021-09-06 03:49:38 +0200alx741(~alx741@186.178.109.96) (Quit: alx741)
2021-09-06 03:50:44 +0200 <byorgey> Indeed.
2021-09-06 03:51:17 +0200 <byorgey> super annoying when you just want to call 'show' on a Tree quickly =P
2021-09-06 03:52:35 +0200 <iqubic> byorgey: Since the advent of code problem states there's only ever going to be one node with the wrong value, I'm fine with whichever order the monadic effects of the "Writer [Int]" happen. I'm going to be using "tell" to log what the new node values should be.
2021-09-06 03:53:28 +0200 <iqubic> Also, for showing a tree, just use "\t -> drawTree (show <$> t)"
2021-09-06 03:55:09 +0200 <iqubic> Anyways, now that I have a foldTreeM, it's time to think about what algorithm I should use to solve part 2 of Day 7.
2021-09-06 03:55:32 +0200MQ-17J(~MQ-17J@8.21.10.6) (Read error: Connection reset by peer)
2021-09-06 03:56:42 +0200MQ-17J(~MQ-17J@8.21.10.6)
2021-09-06 04:00:00 +0200 <iqubic> Why is there no standard algorithm for this.
2021-09-06 04:00:03 +0200 <iqubic> ???
2021-09-06 04:02:54 +0200 <yushyin> maybe there is one and you just don't know about it yet? o.o
2021-09-06 04:03:13 +0200 <iqubic> I've looked around on the internet for one, and I can't really seem to find one.
2021-09-06 04:03:21 +0200awpr(uid446117@id-446117.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-06 04:03:39 +0200machinedgod(~machinedg@24.105.81.50)
2021-09-06 04:04:07 +0200 <yushyin> the aoc 2017 day7 reddit megathread will surely have some :P
2021-09-06 04:08:55 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds)
2021-09-06 04:09:05 +0200 <stevenxl> So if I have a monadic value: `one :: (MonadReader Int m, MonadWriter [String] m, MonadError () m`, and I want to define it in terms of another monadic action that uses a subset of those capabilities, such as `two :: MonadError () m => Int -> Int -> m Int`, that's no problem.
2021-09-06 04:09:41 +0200 <stevenxl> But if I try to define `one` in terms of `three :: Int -> Int -> Maybe Int`, it is harder.
2021-09-06 04:10:58 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-09-06 04:10:59 +0200x_kuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-09-06 04:11:19 +0200 <stevenxl> I can't express why `one` in terms of `three` is harder than `one` in terms of `two`.
2021-09-06 04:12:10 +0200 <stevenxl> Conceptually, I think it is because if my program (`one`) depends an another program (`three`), I have to be able to run that other program.
2021-09-06 04:17:32 +0200dajoer(~david@user/gvx)
2021-09-06 04:17:35 +0200 <hololeap> stevenxl: not sure what you're asking/saying here. three doesn't fit into the `MonadWriter [String] m` constraint
2021-09-06 04:19:10 +0200td_(~td@muedsl-82-207-238-013.citykom.de) (Ping timeout: 240 seconds)
2021-09-06 04:19:17 +0200 <hololeap> when you have the monad floating around as a type variable, m, the compiler doesn't complain, since you haven't made it something concrete
2021-09-06 04:19:35 +0200MQ-17J(~MQ-17J@8.21.10.6) (Read error: Connection reset by peer)
2021-09-06 04:19:55 +0200 <hololeap> Maybe, on the other hand, is concrete and has a specific set of typeclass instances
2021-09-06 04:20:08 +0200brettgilio(~brettgili@137.184.3.255) (Quit: The Lounge - https://thelounge.chat)
2021-09-06 04:21:04 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-09-06 04:21:07 +0200td_(~td@muedsl-82-207-238-207.citykom.de)
2021-09-06 04:21:15 +0200brettgilio(~brettgili@137.184.3.255)
2021-09-06 04:22:39 +0200 <Cale> stevenxl: Well it shouldn't be too hard, but it won't be immediate because m might not be exactly Maybe (and given the constraints, can't be)
2021-09-06 04:23:12 +0200 <Cale> You can however, use a case expression to pattern match on the Maybe result and decide which m-action you want to run in each case though.
2021-09-06 04:24:55 +0200MQ-17J(~MQ-17J@8.21.10.6)
2021-09-06 04:25:20 +0200 <hololeap> iqubic: you might be interested in the Comonad instance of Tree (not sure if it's defined in any library), since it conceptually allows each node to get a "summary" of everything above it
2021-09-06 04:25:37 +0200 <iqubic> How the hell would that work?
2021-09-06 04:27:20 +0200 <hololeap> oh, actually the comonad package has the instance built-in
2021-09-06 04:28:35 +0200 <iqubic> How does it work?
2021-09-06 04:29:11 +0200 <iqubic> Also, I'm not see that Comonad instance for a Tree
2021-09-06 04:29:23 +0200 <hololeap> % import Control.Comonad
2021-09-06 04:29:24 +0200 <yahb> hololeap:
2021-09-06 04:29:34 +0200 <hololeap> % :t extend @Tree
2021-09-06 04:29:34 +0200 <yahb> hololeap: ; <interactive>:1:9: error: Not in scope: type constructor or class `Tree'
2021-09-06 04:29:41 +0200 <hololeap> % import Data.Tree
2021-09-06 04:29:41 +0200 <yahb> hololeap:
2021-09-06 04:29:43 +0200 <hololeap> % :t extend @Tree
2021-09-06 04:29:43 +0200 <yahb> hololeap: (Tree a -> b) -> Tree a -> Tree b
2021-09-06 04:29:59 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c1b9:a2b:77a8:fec7) (Remote host closed the connection)
2021-09-06 04:30:16 +0200 <iqubic> Yes, but what does that function do?
2021-09-06 04:31:28 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-09-06 04:31:32 +0200 <hololeap> hang on, I'm a bit rusty on this :p I saw a talk that explained it a while back, but I don't remember it well enough to explain it
2021-09-06 04:32:23 +0200 <iqubic> If you can link to the talk, that would be good enough for me.
2021-09-06 04:32:23 +0200MQ-17J(~MQ-17J@8.21.10.6) (Read error: Connection reset by peer)
2021-09-06 04:32:35 +0200MQ-17J(~MQ-17J@8.21.10.6)
2021-09-06 04:33:52 +0200 <hololeap> O
2021-09-06 04:33:58 +0200 <hololeap> I'm not finding it currently
2021-09-06 04:34:02 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c1b9:a2b:77a8:fec7)
2021-09-06 04:35:17 +0200MQ-17J(~MQ-17J@8.21.10.6) (Read error: Connection reset by peer)
2021-09-06 04:35:35 +0200MQ-17J(~MQ-17J@8.21.10.6)
2021-09-06 04:37:12 +0200xff0x(~xff0x@2001:1a81:5209:3600:cabf:37b:4141:3c8) (Ping timeout: 245 seconds)
2021-09-06 04:37:58 +0200 <hololeap> here's a real simple example
2021-09-06 04:38:07 +0200xff0x(~xff0x@2001:1a81:5209:3600:c79f:260f:2c03:1c0b)
2021-09-06 04:38:09 +0200 <hololeap> % foo = Node 4 [Node 5 [], Node 6 [Node 7 []]] :: Tree Int
2021-09-06 04:38:09 +0200 <yahb> hololeap:
2021-09-06 04:38:28 +0200orcalikastecona(~orca@047-134-143-165.res.spectrum.com)
2021-09-06 04:38:30 +0200 <hololeap> % thing = foldr (+) 0 :: Tree Int -> Int
2021-09-06 04:38:30 +0200 <yahb> hololeap:
2021-09-06 04:38:42 +0200 <hololeap> % extend thing foo
2021-09-06 04:38:42 +0200 <yahb> hololeap: Node {rootLabel = 22, subForest = [Node {rootLabel = 5, subForest = []},Node {rootLabel = 13, subForest = [Node {rootLabel = 7, subForest = []}]}]}
2021-09-06 04:39:04 +0200 <iqubic> Huh? What is that doing?
2021-09-06 04:39:18 +0200 <hololeap> so here the tree is converted so that each node holds the total of itself and all of its decendents
2021-09-06 04:39:23 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-09-06 04:39:30 +0200 <iqubic> How is that working?
2021-09-06 04:40:47 +0200 <iqubic> That's really really cool.
2021-09-06 04:42:12 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 245 seconds)
2021-09-06 04:44:45 +0200 <hololeap> % foo' = Node 4 [Node 5 [], Node 6 []]
2021-09-06 04:44:46 +0200 <yahb> hololeap:
2021-09-06 04:44:55 +0200 <hololeap> % duplicate foo'
2021-09-06 04:44:56 +0200 <yahb> hololeap: Node {rootLabel = Node {rootLabel = 4, subForest = [Node {rootLabel = 5, subForest = []},Node {rootLabel = 6, subForest = []}]}, subForest = [Node {rootLabel = Node {rootLabel = 5, subForest = []}, subForest = []},Node {rootLabel = Node {rootLabel = 6, subForest = []}, subForest = []}]}
2021-09-06 04:45:06 +0200 <iqubic> What does duplicate do there?
2021-09-06 04:45:13 +0200 <hololeap> % :t duplicate
2021-09-06 04:45:13 +0200 <yahb> hololeap: Comonad w => w a -> w (w a)
2021-09-06 04:45:37 +0200 <hololeap> it basically double wraps the structure in the "most obvious way"
2021-09-06 04:45:47 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-09-06 04:45:52 +0200 <hololeap> % :t duplicate foo'
2021-09-06 04:45:52 +0200 <yahb> hololeap: Num a => Tree (Tree a)
2021-09-06 04:45:57 +0200 <iqubic> Yeah, but what is the "most obvious way" for a Tree?
2021-09-06 04:46:12 +0200 <hololeap> so here each node of the tree contains the entire original tree itself
2021-09-06 04:46:38 +0200 <hololeap> well, the entire original tree from the perspective of each node
2021-09-06 04:46:42 +0200 <iqubic> Wait... Each node of the tree has the entire original tree?
2021-09-06 04:47:16 +0200 <hololeap> the bottom level node does, the other two have the trees that are visible to them
2021-09-06 04:48:01 +0200 <iqubic> I'm not sure I understand.
2021-09-06 04:48:48 +0200 <hololeap> % import Data.List.NonEmpty (NonEmpty(..))
2021-09-06 04:48:48 +0200 <yahb> hololeap:
2021-09-06 04:49:04 +0200MQ-17J(~MQ-17J@8.21.10.6) (Ping timeout: 252 seconds)
2021-09-06 04:49:27 +0200 <hololeap> % (ne = 4 :| [5 6]) :: NonEmpty Int
2021-09-06 04:49:27 +0200 <yahb> hololeap: ; <interactive>:31:5: error: parse error on input `='
2021-09-06 04:50:35 +0200 <hololeap> % ne = 4 :| [5,6,7] :: NonEmpty Int
2021-09-06 04:50:35 +0200 <yahb> hololeap:
2021-09-06 04:50:43 +0200 <hololeap> % duplicate ne
2021-09-06 04:50:43 +0200 <yahb> hololeap: (4 :| [5,6,7]) :| [5 :| [6,7],6 :| [7],7 :| []]
2021-09-06 04:50:49 +0200 <iqubic> I see how that works.
2021-09-06 04:51:52 +0200 <hololeap> so if you have a function: `NonEmpty Int -> a` and fmap over the duplicated structure, you end up with `NonEmpty a` where each calculation is specific to the context of each "cell"
2021-09-06 04:52:01 +0200 <iqubic> I get how that works.
2021-09-06 04:52:10 +0200xff0x(~xff0x@2001:1a81:5209:3600:c79f:260f:2c03:1c0b) (Ping timeout: 240 seconds)
2021-09-06 04:52:17 +0200 <iqubic> Seeing that helps me understand how the Tree comonad works.
2021-09-06 04:52:20 +0200 <hololeap> % fmap thing (duplicate foo)
2021-09-06 04:52:20 +0200 <yahb> hololeap: Node {rootLabel = 22, subForest = [Node {rootLabel = 5, subForest = []},Node {rootLabel = 13, subForest = [Node {rootLabel = 7, subForest = []}]}]}
2021-09-06 04:53:18 +0200xff0x(~xff0x@2001:1a81:5209:3600:2bda:f166:a64d:307f)
2021-09-06 04:53:19 +0200 <iqubic> Yeah that makes sense.
2021-09-06 04:53:30 +0200 <iqubic> % fmap sum (duplicate foo)
2021-09-06 04:53:31 +0200 <yahb> iqubic: Node {rootLabel = 22, subForest = [Node {rootLabel = 5, subForest = []},Node {rootLabel = 13, subForest = [Node {rootLabel = 7, subForest = []}]}]}
2021-09-06 04:53:31 +0200 <hololeap> anyway, it might help :)
2021-09-06 04:53:42 +0200 <iqubic> thing is just sum.
2021-09-06 04:53:46 +0200 <iqubic> :t sum
2021-09-06 04:53:46 +0200 <lambdabot> (Foldable t, Num a) => t a -> a
2021-09-06 04:53:53 +0200 <hololeap> yeah it's just sum
2021-09-06 04:54:53 +0200wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net)
2021-09-06 04:54:57 +0200 <hololeap> although in my experience the Comonad interface can be really slow, but feel free to experiment with that
2021-09-06 04:55:34 +0200wennefer0(~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Remote host closed the connection)
2021-09-06 04:57:00 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 04:57:13 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 04:58:48 +0200 <iqubic> hololeap: I think I'm just gonna stick with using my foldTreeM.
2021-09-06 05:03:48 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-09-06 05:04:28 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds)
2021-09-06 05:04:37 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 05:08:49 +0200oxide(~lambda@user/oxide)
2021-09-06 05:21:40 +0200lavaman(~lavaman@98.38.249.169)
2021-09-06 05:21:59 +0200aarvar(~aaron@2601:602:a080:fa0:7670:bc4e:f96f:f88a)
2021-09-06 05:26:10 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2021-09-06 05:29:10 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds)
2021-09-06 05:29:17 +0200favonia(~favonia@user/favonia) (Quit: Leaving)
2021-09-06 05:29:27 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 05:33:37 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-06 05:33:54 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 05:48:39 +0200otto_s(~user@p5b0445ba.dip0.t-ipconnect.de)
2021-09-06 05:50:15 +0200benin0369323(~benin@183.82.207.253)
2021-09-06 05:51:40 +0200otto_s_(~user@p5b04481b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-09-06 05:52:20 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 05:52:38 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 05:56:25 +0200 <lechner> Hi, what do people dislike about Template Haskell when they talk poorly about it, please?
2021-09-06 05:57:44 +0200 <janus> lechner: https://stackoverflow.com/a/10857227/309483
2021-09-06 05:59:04 +0200 <c_wraith> that's pretty old
2021-09-06 05:59:12 +0200 <c_wraith> There is type-safe TH now
2021-09-06 05:59:28 +0200 <c_wraith> and visibility of module-private stuff has been restricted better
2021-09-06 05:59:45 +0200 <c_wraith> But arbitrary IO is still an issue
2021-09-06 06:00:15 +0200 <c_wraith> But my real problem with TH isn't even mentioned there. It makes compiling *slooooow*
2021-09-06 06:01:02 +0200 <lechner> Thanks!
2021-09-06 06:02:43 +0200 <lechner> I love FP, and would like to move a Node-based web site toward Haskell. Should I look at Yesod, which uses TH extensively?
2021-09-06 06:02:47 +0200xlei(znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Ping timeout: 240 seconds)
2021-09-06 06:03:27 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2021-09-06 06:03:56 +0200Skyfire(~pyon@user/pyon)
2021-09-06 06:03:59 +0200 <c_wraith> I wouldn't worry about that, in particular, for making that decision. I'd worry more about how much you like using it. It's very opinionated. It may be just what you want, it may not. That's up to you.
2021-09-06 06:05:03 +0200 <lechner> What's at the other end of the spectrum?
2021-09-06 06:05:53 +0200 <c_wraith> Things like spock/scotty (they're variants of the same idea). They do about as little as possible.
2021-09-06 06:11:55 +0200 <hololeap> is this still the only way to avoid the boilerplate of writing a Show1 instance? https://hackage.haskell.org/package/deriving-compat-0.6/docs/Text-Show-Deriving.html#v:deriveShow1
2021-09-06 06:12:37 +0200xlei(znc@pool-68-129-84-118.nycmny.fios.verizon.net)
2021-09-06 06:12:40 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 06:12:55 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 06:14:10 +0200retroid_(~retro@176.255.22.194)
2021-09-06 06:14:57 +0200APic(apic@apic.name) (Read error: Connection reset by peer)
2021-09-06 06:15:16 +0200APic(apic@apic.name)
2021-09-06 06:18:37 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-09-06 06:19:47 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-06 06:19:47 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-06 06:19:47 +0200wroathe(~wroathe@user/wroathe)
2021-09-06 06:22:23 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving)
2021-09-06 06:24:46 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-06 06:27:57 +0200Gurkenglas(~Gurkengla@dslb-090-186-104-237.090.186.pools.vodafone-ip.de)
2021-09-06 06:30:10 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 240 seconds)
2021-09-06 06:33:05 +0200nehsou^(~nehsou@68.101.54.227) (Ping timeout: 252 seconds)
2021-09-06 06:35:32 +0200nehsou^(~nehsou@68.101.54.227)
2021-09-06 06:36:21 +0200 <dhruvasagar> AaAaAaAa
2021-09-06 06:37:21 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-06 06:38:27 +0200Zianic(~12602@user/zianic)
2021-09-06 06:43:55 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-06 06:47:58 +0200pi1(~pi@177.223.162.41)
2021-09-06 06:50:04 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-06 06:50:04 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-06 06:50:04 +0200wroathe(~wroathe@user/wroathe)
2021-09-06 06:50:06 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-chan)
2021-09-06 06:54:57 +0200APic(apic@apic.name) (Read error: Connection reset by peer)
2021-09-06 06:56:53 +0200slack1256(~slack1256@newharrisonhotel04.n.subnet.rcn.com) (Remote host closed the connection)
2021-09-06 06:57:22 +0200 <lechner> Hi, i think like scotty. Is lucid a good way to generate Html?
2021-09-06 07:00:09 +0200APic(apic@apic.name)
2021-09-06 07:00:28 +0200nicbk(~nicbk@user/nicbk) (Quit: nicbk)
2021-09-06 07:00:40 +0200orcalikastecona(~orca@047-134-143-165.res.spectrum.com) (Ping timeout: 240 seconds)
2021-09-06 07:05:18 +0200fef(~thedawn@user/thedawn)
2021-09-06 07:05:49 +0200 <arahael> Out of curiosity, what's most similar to Rx but in Haskell? (I'm talking ReactiveExtensions). Would that be Conduit?
2021-09-06 07:06:53 +0200cjb(~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50)
2021-09-06 07:07:47 +0200 <Cale> arahael: I'd use reflex
2021-09-06 07:08:41 +0200 <arahael> Cale: I still seriously have to get familiar with that. :(
2021-09-06 07:08:45 +0200Skyfire(~pyon@user/pyon) (Quit: brb)
2021-09-06 07:10:32 +0200 <Cale> What kind of application are you thinking of?
2021-09-06 07:11:17 +0200 <arahael> Oh, I'm just academically wondering, but one significant point here is that I was looking at "Just a library", whereas reflex always seems to provide the whole framework, toolchain, and build system.
2021-09-06 07:11:48 +0200 <arahael> Howeer, reflex does seem pretty good from waht I've seen, just haven't yet spent the time to look at it. I really should.
2021-09-06 07:12:37 +0200 <Cale> Well, reflex itself is just a library
2021-09-06 07:13:37 +0200 <Cale> But if you want to use reflex-dom, you're probably building a web application frontend, in which case, you'll need ghcjs, and that's kind of annoying to set up, or else perhaps you're building a mobile application, and the toolchains for those are even more annoying.
2021-09-06 07:14:38 +0200 <Cale> So we have a bunch of nix handy in the form of reflex-platform to help solve those toolchain issues, and a framework called Obelisk which lets you set up projects with a frontend and backend and shared code and stuff.
2021-09-06 07:15:25 +0200 <arahael> Well, I'm strictly wondering academically, because what I'm actually working on is an iOS app that uses Swift. Integrating haskell, even ghcjs, is out of the question. :(
2021-09-06 07:15:28 +0200nicbk(~nicbk@user/nicbk)
2021-09-06 07:16:02 +0200 <arahael> But I'm looking at maybe utilising kotlin-native, which other peole in the team like, and I'm just wondering: "What would this be like in haskell". :)
2021-09-06 07:16:09 +0200 <arahael> brb - later...
2021-09-06 07:16:22 +0200 <Cale> At some point we might build reflex-y Haskell bindings to native mobile GUI libraries
2021-09-06 07:16:46 +0200 <Cale> We haven't yet had a customer that cared enough to pay us the extra to do that.
2021-09-06 07:17:28 +0200 <Cale> But it'd be doable even in a fairly piecemeal way
2021-09-06 07:23:01 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 07:23:20 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 07:23:25 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-09-06 07:29:36 +0200xff0x(~xff0x@2001:1a81:5209:3600:2bda:f166:a64d:307f) (Ping timeout: 256 seconds)
2021-09-06 07:30:29 +0200xff0x(~xff0x@2001:1a81:5209:3600:b54c:cd6:7fe8:e9eb)
2021-09-06 07:37:05 +0200 <arahael> That would be very very cool. Do you have reflex-y haskell bindings for desktop or androi GUI libraries, though? Even avoiding using a browser web control to host it would be an improvement - even if it's juts politics.
2021-09-06 07:39:13 +0200 <iqubic> Where in the MTL library is the definition of MonadPlus for the WriterMonad? It should be something of the form "(Monoid w, MonadPlus m) => MonadPlus (WriterT w m) where..." but I can't seem to find the source code for that.
2021-09-06 07:42:10 +0200 <lechner> https://hackage.haskell.org/package/mtl-2.2.1/docs/Control-Monad-Writer-Lazy.html
2021-09-06 07:42:40 +0200 <lechner> or ::Strict
2021-09-06 07:45:11 +0200 <iqubic> Yeah, but that's not in the source code.
2021-09-06 07:45:46 +0200 <iqubic> I can't find the source code that tells me what mzero and mplus do for Writer.
2021-09-06 07:48:06 +0200 <iqubic> Actually, really, what I want to know is what the Alternative functions of "empty" and "<|>" do for a Writer.
2021-09-06 07:48:34 +0200sleblanc(~sleblanc@user/sleblanc) (Ping timeout: 240 seconds)
2021-09-06 07:49:35 +0200 <lechner> this one? https://hackage.haskell.org/package/base-4.15.0.0/docs/Control-Applicative.html#v:empty
2021-09-06 07:50:18 +0200 <iqubic> Yes. I want to know what that does for the Writer monad.
2021-09-06 07:50:36 +0200 <iqubic> Or rather, what that does for a WriterT.
2021-09-06 07:52:52 +0200 <janus> iqubic: this one? https://hackage.haskell.org/package/transformers-0.6.0.2/docs/src/Control.Monad.Trans.Writer.Lazy.…
2021-09-06 07:53:36 +0200 <iqubic> Yes, actually. That's what I was looking for. Thanks so much.
2021-09-06 07:55:44 +0200 <janus> yes, it is tricky to find because the docs pages you will find are for mtl, but the implementation is actually in transformers. so what i do is just look at the source for the mtl page, look where it imports from, and adjust the package name in the url to say 'transformers'. you can delete the version number and it will redirect to the latest version
2021-09-06 07:56:37 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-09-06 07:58:17 +0200 <iqubic> Yeah. That makes little sense, but I can work with that.
2021-09-06 07:59:57 +0200APic(apic@apic.name) (Read error: Connection reset by peer)
2021-09-06 08:00:07 +0200APic(apic@apic.name)
2021-09-06 08:04:56 +0200xlei(znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2021-09-06 08:04:57 +0200hgolden(~hgolden2@cpe-172-114-84-61.socal.res.rr.com)
2021-09-06 08:06:05 +0200michalz(~michalz@185.246.204.97)
2021-09-06 08:09:11 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-06 08:09:29 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-09-06 08:09:50 +0200 <iqubic> Does anyone know what the Accum monad is, and how it differs from the Writer monad?
2021-09-06 08:09:57 +0200APic(apic@apic.name) (Read error: Connection reset by peer)
2021-09-06 08:10:08 +0200APic(apic@apic.name)
2021-09-06 08:14:56 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2021-09-06 08:16:53 +0200max22-(~maxime@2a01cb088335980007947e7c941ddf55.ipv6.abo.wanadoo.fr)
2021-09-06 08:17:56 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-09-06 08:21:33 +0200nicbk(~nicbk@user/nicbk) (Ping timeout: 276 seconds)
2021-09-06 08:23:16 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon) (Quit: Ping timeout (120 seconds))
2021-09-06 08:23:30 +0200MidAutumnMoon(~MidAutumn@user/midautumnmoon)
2021-09-06 08:23:40 +0200son0p(~ff@181.136.122.143) (Ping timeout: 240 seconds)
2021-09-06 08:27:45 +0200Akronymus(~Akronymus@85.118.189.59)
2021-09-06 08:29:42 +0200xff0x(~xff0x@2001:1a81:5209:3600:b54c:cd6:7fe8:e9eb) (Ping timeout: 245 seconds)
2021-09-06 08:30:41 +0200xff0x(~xff0x@2001:1a81:5209:3600:6986:c057:5fff:c53b)
2021-09-06 08:30:47 +0200 <dibblego> with the extra ability to read all previous output
2021-09-06 08:31:05 +0200 <iqubic> Huh? How so?
2021-09-06 08:31:30 +0200 <iqubic> Oh. I see.
2021-09-06 08:31:45 +0200 <iqubic> So, how does Accum differ from State?
2021-09-06 08:31:55 +0200 <dibblego> a restricted append-only version of a state monad transformer
2021-09-06 08:32:11 +0200 <iqubic> Yeah, but how do Accum and State differ?
2021-09-06 08:32:17 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-06 08:32:17 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-06 08:32:17 +0200wroathe(~wroathe@user/wroathe)
2021-09-06 08:32:52 +0200 <dibblego> a restricted append-only version of a
2021-09-06 08:33:31 +0200 <iqubic> I'm not sure I understand.
2021-09-06 08:34:00 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2021-09-06 08:34:27 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2021-09-06 08:36:50 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2021-09-06 08:38:16 +0200xsperry(~as@user/xsperry)
2021-09-06 08:42:04 +0200kenran(~kenran@b2b-37-24-119-190.unitymedia.biz)
2021-09-06 08:42:32 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-06 08:42:32 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-06 08:42:32 +0200wroathe(~wroathe@user/wroathe)
2021-09-06 08:43:18 +0200 <Cale> iqubic: You can't set the state to any value you want, only add to it, apparently
2021-09-06 08:43:24 +0200jakalx(~jakalx@base.jakalx.net)
2021-09-06 08:47:48 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2021-09-06 08:48:24 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 08:48:37 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 08:50:12 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 08:52:56 +0200meinside(uid24933@id-24933.helmsley.irccloud.com)
2021-09-06 08:53:24 +0200Skyfire(~pyon@user/pyon)
2021-09-06 08:55:33 +0200gehmehgeh(~user@user/gehmehgeh)
2021-09-06 08:57:51 +0200 <janus> the recording of spj's 'the state of ghc' is out: https://www.youtube.com/watch?v=OZgoid0pex8&list=PLyrlk8Xaylp6_QTmXGuRe3lShaRGaMtgc&index=9&t=80s
2021-09-06 08:59:43 +0200 <tomsmeding> iqubic: where did you find that Accum?
2021-09-06 09:00:23 +0200 <tomsmeding> usually, I believe, accumulation-only data structures are useful if you want to parallelise something, if you can take advantage of the combine operation being commutative
2021-09-06 09:03:00 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:7d83:b820:1845:d06c)
2021-09-06 09:03:44 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 09:04:00 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 09:04:41 +0200cfricke(~cfricke@user/cfricke)
2021-09-06 09:05:57 +0200fef(~thedawn@user/thedawn) (Quit: Leaving)
2021-09-06 09:07:38 +0200cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 256 seconds)
2021-09-06 09:09:03 +0200slavaqq(~slavaqq@sdmail.sdserver.cz)
2021-09-06 09:18:14 +0200cods(~fred@82-65-232-44.subs.proxad.net)
2021-09-06 09:19:11 +0200 <Hecate> thanks janus
2021-09-06 09:19:56 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-09-06 09:23:33 +0200lavaman(~lavaman@98.38.249.169)
2021-09-06 09:24:05 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 09:24:19 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 09:27:37 +0200cods(~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 245 seconds)
2021-09-06 09:27:46 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-09-06 09:38:15 +0200LeyLa21F(~rizon@95.70.207.149)
2021-09-06 09:40:13 +0200c_wraith(~c_wraith@adjoint.us) (Quit: Bye)
2021-09-06 09:41:06 +0200c_wraith(~c_wraith@adjoint.us)
2021-09-06 09:41:11 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-06 09:42:04 +0200cherryblossom(~cherryblo@119-17-130-223.771182.mel.nbn.aussiebb.net)
2021-09-06 09:44:38 +0200cherryblossom(~cherryblo@119-17-130-223.771182.mel.nbn.aussiebb.net) (Changing host)
2021-09-06 09:44:38 +0200cherryblossom(~cherryblo@user/cherryblossom)
2021-09-06 09:45:08 +0200cherryblossom(~cherryblo@user/cherryblossom) ()
2021-09-06 09:46:17 +0200acidjnk_new(~acidjnk@p200300d0c720307835a2456c1104dd43.dip0.t-ipconnect.de)
2021-09-06 09:48:01 +0200shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-09-06 09:48:10 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 240 seconds)
2021-09-06 09:48:22 +0200kuribas(~user@ptr-25vy0i6xfv8pdfgun1l.18120a2.ip6.access.telenet.be)
2021-09-06 09:48:34 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-06 09:52:49 +0200LeyLa21F(~rizon@95.70.207.149) ()
2021-09-06 09:57:12 +0200xsarnik(xsarnik@lounge.fi.muni.cz) (Quit: The Lounge - https://thelounge.chat)
2021-09-06 09:59:01 +0200xsarnik(xsarnik@lounge.fi.muni.cz)
2021-09-06 09:59:25 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 09:59:38 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 10:05:52 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 252 seconds)
2021-09-06 10:06:37 +0200hendursa1(~weechat@user/hendursaga)
2021-09-06 10:08:14 +0200pmk(~user@2a02:587:941a:35d9:8f9c:6cb6:67dc:f5e3)
2021-09-06 10:08:46 +0200cods(~fred@82-65-232-44.subs.proxad.net)
2021-09-06 10:08:57 +0200__monty__(~toonn@user/toonn)
2021-09-06 10:09:27 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-09-06 10:16:45 +0200burnsidesLlama(~burnsides@client-8-65.eduroam.oxuni.org.uk)
2021-09-06 10:17:29 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-06 10:17:54 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-06 10:20:27 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-09-06 10:22:04 +0200burnsidesLlama(~burnsides@client-8-65.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-09-06 10:22:42 +0200burnsidesLlama(~burnsides@client-8-65.eduroam.oxuni.org.uk)
2021-09-06 10:22:53 +0200mc47(~mc47@xmonad/TheMC47)
2021-09-06 10:26:50 +0200burnsidesLlama(~burnsides@client-8-65.eduroam.oxuni.org.uk) (Ping timeout: 252 seconds)
2021-09-06 10:28:10 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-06 10:29:45 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 10:29:51 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 10:30:01 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 10:31:29 +0200acidjnk_new3(~acidjnk@p200300d0c720307819886bba50a4bc38.dip0.t-ipconnect.de)
2021-09-06 10:34:34 +0200acidjnk_new(~acidjnk@p200300d0c720307835a2456c1104dd43.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-09-06 10:35:08 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 10:35:22 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 10:39:13 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-09-06 10:39:42 +0200nehsou^(~nehsou@68.101.54.227) (Remote host closed the connection)
2021-09-06 10:43:47 +0200zer0bitz_(~zer0bitz@dsl-hkibng31-58c384-213.dhcp.inet.fi)
2021-09-06 10:44:40 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 240 seconds)
2021-09-06 10:45:37 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-09-06 10:46:33 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-09-06 10:46:50 +0200zer0bitz(~zer0bitz@dsl-hkibng31-58c384-213.dhcp.inet.fi) (Ping timeout: 250 seconds)
2021-09-06 10:47:13 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
2021-09-06 10:58:07 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2021-09-06 10:58:43 +0200max22-(~maxime@2a01cb088335980007947e7c941ddf55.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-09-06 10:59:55 +0200chomwitt(~chomwitt@2a02:587:dc16:c800:12c3:7bff:fe6d:d374)
2021-09-06 11:01:41 +0200dsrt^(~dsrt@68.101.54.227)
2021-09-06 11:09:07 +0200oxide(~lambda@user/oxide) (Read error: Connection reset by peer)
2021-09-06 11:11:10 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2021-09-06 11:11:31 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 11:12:48 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-09-06 11:24:22 +0200vysn(~vysn@user/vysn)
2021-09-06 11:25:59 +0200slavaqq(~slavaqq@sdmail.sdserver.cz) (Quit: Client closed)
2021-09-06 11:26:52 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-06 11:28:08 +0200pi1(~pi@177.223.162.41) (Quit: WeeChat 2.8)
2021-09-06 11:30:34 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-06 11:30:51 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 11:35:55 +0200oxide(~lambda@user/oxide)
2021-09-06 11:38:56 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 256 seconds)
2021-09-06 11:39:13 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 11:41:48 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-09-06 11:45:21 +0200acidjnk_new(~acidjnk@p5487d0ba.dip0.t-ipconnect.de)
2021-09-06 11:46:09 +0200talismanick(~user@2601:644:8500:8350::3ed5) (Remote host closed the connection)
2021-09-06 11:48:22 +0200acidjnk_new3(~acidjnk@p200300d0c720307819886bba50a4bc38.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-09-06 11:48:39 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-06 11:49:37 +0200ArctVaulMarsHMPJ(~pjetcetal@128-71-152-79.broadband.corbina.ru) (Read error: Connection reset by peer)
2021-09-06 11:49:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-09-06 11:49:55 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 11:53:22 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 240 seconds)
2021-09-06 11:54:05 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c1b9:a2b:77a8:fec7) (Remote host closed the connection)
2021-09-06 11:55:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-09-06 11:55:50 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 11:59:16 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-06 12:00:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-09-06 12:01:38 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 12:06:52 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-06 12:07:11 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 12:07:29 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-09-06 12:10:03 +0200fendor(~fendor@77.119.200.43.wireless.dyn.drei.com)
2021-09-06 12:10:17 +0200lua(~ed@101.53.218.157)
2021-09-06 12:12:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-06 12:13:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 12:17:14 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Remote host closed the connection)
2021-09-06 12:17:28 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 12:19:12 +0200kawpuh(~kawpuh@097-082-066-236.res.spectrum.com) (Quit: Client closed)
2021-09-06 12:23:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-06 12:24:31 +0200wonko(~wjc@62.115.229.50)
2021-09-06 12:24:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 12:25:40 +0200slavaqq(~slavaqq@sdmail.sdserver.cz)
2021-09-06 12:29:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-09-06 12:31:02 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 12:32:41 +0200yourname_(~barrucadu@carcosa.barrucadu.co.uk) (Quit: leaving)
2021-09-06 12:33:12 +0200barrucadu(~barrucadu@carcosa.barrucadu.co.uk)
2021-09-06 12:35:24 +0200xlei(znc@pool-68-129-84-118.nycmny.fios.verizon.net)
2021-09-06 12:36:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-09-06 12:37:08 +0200Torla(~Torla@host-95-249-212-207.retail.telecomitalia.it)
2021-09-06 12:37:36 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 12:42:18 +0200Torla(~Torla@host-95-249-212-207.retail.telecomitalia.it) ()
2021-09-06 12:42:58 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-09-06 12:43:20 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 12:45:01 +0200APic(apic@apic.name) (Read error: Connection reset by peer)
2021-09-06 12:45:13 +0200APic(apic@apic.name)
2021-09-06 12:48:52 +0200seeg(~thelounge@static.89.161.217.95.clients.your-server.de)
2021-09-06 12:49:55 +0200ArctVaulMarsHMPJ(~pjetcetal@128-71-152-79.broadband.corbina.ru)
2021-09-06 12:50:46 +0200_bin(~bin@user/bin/x-1583188) (Ping timeout: 250 seconds)
2021-09-06 12:52:20 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-09-06 12:52:36 +0200Akronymus(~Akronymus@85.118.189.59) (Quit: Client closed)
2021-09-06 12:53:44 +0200ArctVaulMarsHMPJ(~pjetcetal@128-71-152-79.broadband.corbina.ru) (Remote host closed the connection)
2021-09-06 12:54:30 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c1b9:a2b:77a8:fec7)
2021-09-06 12:55:32 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2021-09-06 12:59:07 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c1b9:a2b:77a8:fec7) (Ping timeout: 252 seconds)
2021-09-06 13:00:07 +0200lua(~ed@101.53.218.157) (Quit: WeeChat 2.8)
2021-09-06 13:00:59 +0200alx741(~alx741@181.196.69.81)
2021-09-06 13:05:29 +0200ArctVaulMarsHMPJ(~pjetcetal@128-71-152-79.broadband.corbina.ru)
2021-09-06 13:06:48 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2021-09-06 13:07:31 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-09-06 13:08:12 +0200Akronymus(~Akronymus@85.118.189.59)
2021-09-06 13:11:14 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 13:12:19 +0200kenran(~kenran@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 252 seconds)
2021-09-06 13:15:28 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 13:15:40 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-09-06 13:15:41 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 13:18:17 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-06 13:19:19 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-09-06 13:25:11 +0200lavaman(~lavaman@98.38.249.169)
2021-09-06 13:25:45 +0200fendor_(~fendor@91.141.66.73.wireless.dyn.drei.com)
2021-09-06 13:26:51 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2021-09-06 13:28:18 +0200fendor(~fendor@77.119.200.43.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
2021-09-06 13:29:55 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-09-06 13:29:58 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 13:30:48 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 13:31:02 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 13:34:10 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-09-06 13:39:11 +0200retro_(~retro@176.255.22.194)
2021-09-06 13:42:01 +0200retroid_(~retro@176.255.22.194) (Ping timeout: 252 seconds)
2021-09-06 13:47:37 +0200 <Gurkenglas> Could we have type signatures that live not in Hask but in a slice over some type? For example, (Just :: Int -> Maybe Int) -> (readMaybe :: String -> Maybe Int) would be the type of functions f :: Int -> String such that readMaybe . f == Just
2021-09-06 13:54:00 +0200oxide(~lambda@user/oxide)
2021-09-06 13:56:48 +0200 <tomsmeding> good luck writing a typechecker for that :p
2021-09-06 14:01:41 +0200 <hpc> you may want to check out dependent types
2021-09-06 14:02:09 +0200 <hpc> you don't get to express things in quite the way you describe, but they're pretty neat anyway
2021-09-06 14:03:01 +0200alx741(~alx741@181.196.69.81) (Quit: alx741)
2021-09-06 14:06:44 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-06 14:10:21 +0200kenran(~kenran@200116b82b69d400aaf124cc120a0e32.dip.versatel-1u1.de)
2021-09-06 14:11:10 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-06 14:12:01 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 14:14:37 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 14:14:46 +0200xsperry(~as@user/xsperry) (Ping timeout: 256 seconds)
2021-09-06 14:16:22 +0200flukiluke_(~m-7humut@plum.alephc.xyz)
2021-09-06 14:16:25 +0200Guest53(~Guest53@109.206.213.203)
2021-09-06 14:18:40 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-09-06 14:24:12 +0200Guest53(~Guest53@109.206.213.203) (Quit: Client closed)
2021-09-06 14:24:45 +0200lep-lep
2021-09-06 14:27:56 +0200jippiedoe(~david@2a02-a44c-e14e-1-d412-81e6-62cd-72c2.fixed6.kpn.net)
2021-09-06 14:35:52 +0200shailangsa(~shailangs@host86-186-127-196.range86-186.btcentralplus.com) (Ping timeout: 252 seconds)
2021-09-06 14:41:09 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 14:41:27 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 14:42:35 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Ping timeout: 252 seconds)
2021-09-06 14:44:57 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2021-09-06 14:46:32 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 14:46:47 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 14:46:49 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 14:47:28 +0200benin0369323(~benin@183.82.207.253) (Ping timeout: 252 seconds)
2021-09-06 14:47:45 +0200benin0369323(~benin@183.82.207.253)
2021-09-06 14:50:02 +0200yiyuan(~yiyuan@n11212042003.netvigator.com)
2021-09-06 14:50:14 +0200yiyuan(~yiyuan@n11212042003.netvigator.com) (Remote host closed the connection)
2021-09-06 14:50:31 +0200yiyuan(~yiyuan@n11212042003.netvigator.com)
2021-09-06 14:50:33 +0200 <yiyuan> hey
2021-09-06 14:50:43 +0200 <kuribas> Gurkenglas: perhaps you can express that in liquid haskell
2021-09-06 14:50:54 +0200yiyuan(~yiyuan@n11212042003.netvigator.com) (Remote host closed the connection)
2021-09-06 14:50:58 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-09-06 14:51:12 +0200yiyuan(~yiyuan@n11212042003.netvigator.com)
2021-09-06 14:51:13 +0200yiyuan(~yiyuan@n11212042003.netvigator.com) ()
2021-09-06 14:52:00 +0200Guest69(~Guest69@n11212042003.netvigator.com)
2021-09-06 14:52:41 +0200Guest69(~Guest69@n11212042003.netvigator.com) (Client Quit)
2021-09-06 14:53:08 +0200aman(~aman@user/aman)
2021-09-06 14:55:10 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-09-06 14:56:04 +0200machinedgod(~machinedg@24.105.81.50)
2021-09-06 14:56:26 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c1b9:a2b:77a8:fec7)
2021-09-06 14:58:41 +0200jippiedoe(~david@2a02-a44c-e14e-1-d412-81e6-62cd-72c2.fixed6.kpn.net) (Quit: Leaving)
2021-09-06 14:59:04 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-06 14:59:23 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-06 14:59:50 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 15:00:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:c1b9:a2b:77a8:fec7) (Ping timeout: 240 seconds)
2021-09-06 15:01:12 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
2021-09-06 15:02:56 +0200aarvar(~aaron@2601:602:a080:fa0:7670:bc4e:f96f:f88a) (Ping timeout: 256 seconds)
2021-09-06 15:04:10 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-09-06 15:04:23 +0200 <yin[m]> i've started using neovim. what's the current recommended setup for haskell?
2021-09-06 15:05:04 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-06 15:05:31 +0200 <arahael> I think HLS, but frankly, I just use a split window and run ghcid in the other pane.
2021-09-06 15:05:33 +0200 <arahael> Hard to beat.
2021-09-06 15:06:13 +0200burnsidesLlama(~burnsides@client-8-65.eduroam.oxuni.org.uk)
2021-09-06 15:10:57 +0200yin[m]uploaded an audio file: (4KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/ZBOMQEGOzGNPIWRTlhcSZmuw/Voice%20mess… >
2021-09-06 15:13:31 +0200 <kuribas> yin[m]: emacs
2021-09-06 15:16:10 +0200 <kuribas> to be fair, I haven't actually found any satisfying setup. emacs with flycheck works reasonably well. LSP always seems to crash or have bugs for me. Never tried vim though...
2021-09-06 15:17:22 +0200 <lortabac> I use neovim + HLS, it works well when it works
2021-09-06 15:17:24 +0200 <raehik> yin[m]: I use neovim with a stack ghci session in another terminal. Emacs with HLS is better but it needs tons of memory and, well, Emacs knowledge
2021-09-06 15:17:48 +0200 <lortabac> it crashes regularly on medium/big projects
2021-09-06 15:17:54 +0200 <kuribas> lortabac: for me too, except it rarely works...
2021-09-06 15:18:19 +0200 <lortabac> for me it only works reliably on tiny projects
2021-09-06 15:19:26 +0200 <kuribas> intellij with stack also seems to work well...
2021-09-06 15:19:45 +0200 <tomsmeding> raehik: neovim has native support for language servers nowadays since 0.5.0; doesn't solve the memory usage issue but does solve having to learn emacs :)
2021-09-06 15:20:13 +0200leplep-
2021-09-06 15:20:16 +0200slep(~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) (Ping timeout: 250 seconds)
2021-09-06 15:20:43 +0200shailangsa(~shailangs@host86-186-132-44.range86-186.btcentralplus.com)
2021-09-06 15:21:15 +0200 <raehik> tomsmeding: hrmmmm! I should have a look at that, thank you. So it "just works"?
2021-09-06 15:21:20 +0200burnsidesLlama(~burnsides@client-8-65.eduroam.oxuni.org.uk) (Remote host closed the connection)
2021-09-06 15:21:20 +0200 <tomsmeding> kind of?
2021-09-06 15:21:30 +0200 <tomsmeding> if you put the right lua incantations in your vimrc it just works :)
2021-09-06 15:22:03 +0200 <tomsmeding> raehik: this is what I use https://paste.tomsmeding.com/ra9omdg9
2021-09-06 15:22:32 +0200 <tomsmeding> minorly modified from the standard example code from nvim-lspconfig so that HLS also works on bare files outside of a cabal project
2021-09-06 15:22:49 +0200 <tomsmeding> note that you need github.com/neovim/nvim-lspconfig
2021-09-06 15:23:25 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 15:23:59 +0200xstill(~xstill@fimu/xstill) ()
2021-09-06 15:24:49 +0200andinus(andinus@tilde.institute) (ERC (IRC client for Emacs 27.1))
2021-09-06 15:29:10 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-09-06 15:29:25 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-06 15:31:32 +0200renzhi(~xp@2607:fa49:6500:3d00::d986) (Ping timeout: 252 seconds)
2021-09-06 15:31:49 +0200vysn(~vysn@user/vysn) (Remote host closed the connection)
2021-09-06 15:31:53 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 15:32:06 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 15:34:01 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-09-06 15:34:27 +0200 <raehik> tomsmeding: thanks! saving that
2021-09-06 15:35:52 +0200 <zzz> nice
2021-09-06 15:41:49 +0200qbt(~edun@user/edun) (Remote host closed the connection)
2021-09-06 15:43:28 +0200renzhi(~xp@2607:fa49:6500:3d00::5f4a)
2021-09-06 15:47:13 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 15:47:26 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 15:49:04 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-06 15:51:40 +0200son0p(~ff@181.136.122.143)
2021-09-06 15:53:34 +0200qbt(~edun@user/edun)
2021-09-06 15:53:40 +0200shriekingnoise(~shrieking@186.137.144.80)
2021-09-06 15:54:29 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 15:58:52 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2021-09-06 16:00:04 +0200Everything(~Everythin@37.115.210.35) (Ping timeout: 252 seconds)
2021-09-06 16:02:02 +0200Everything(~Everythin@37.115.210.35)
2021-09-06 16:08:49 +0200sleblanc(~sleblanc@user/sleblanc)
2021-09-06 16:15:18 +0200jpsa(~user@c-va-c3ef24d846-78-1.tingfiber.com)
2021-09-06 16:16:10 +0200_bin(~bin@user/bin/x-1583188)
2021-09-06 16:16:18 +0200orcalikastecona(~orca@047-134-143-165.res.spectrum.com)
2021-09-06 16:18:59 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 16:20:30 +0200oxide(~lambda@user/oxide) (Ping timeout: 250 seconds)
2021-09-06 16:22:38 +0200oxide(~lambda@user/oxide)
2021-09-06 16:23:14 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2021-09-06 16:25:34 +0200lbseale(~lbseale@user/ep1ctetus)
2021-09-06 16:27:57 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 16:28:29 +0200nvmd(~nvmd@user/nvmd)
2021-09-06 16:32:37 +0200orcalikastecona(~orca@047-134-143-165.res.spectrum.com) (Quit: WeeChat 2.8)
2021-09-06 16:33:11 +0200lep-lep
2021-09-06 16:33:35 +0200machinedgod(~machinedg@24.105.81.50) (Read error: Connection reset by peer)
2021-09-06 16:34:16 +0200hexemeldlework
2021-09-06 16:36:21 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-06 16:36:31 +0200thyriaen(~thyriaen@x4dbf2170.dyn.telefonica.de)
2021-09-06 16:36:58 +0200machinedgod(~machinedg@24.105.81.50)
2021-09-06 16:37:07 +0200jpsa(~user@c-va-c3ef24d846-78-1.tingfiber.com) (ERC (IRC client for Emacs 28.0.50))
2021-09-06 16:43:37 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-09-06 16:44:46 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2.1)
2021-09-06 16:47:57 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-09-06 16:50:23 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net)
2021-09-06 16:57:33 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 16:57:52 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 16:58:23 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:51c9:9325:5764:1e14)
2021-09-06 17:01:50 +0200Akronymus(~Akronymus@85.118.189.59) (Quit: Akronymus)
2021-09-06 17:02:58 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:51c9:9325:5764:1e14) (Ping timeout: 250 seconds)
2021-09-06 17:03:04 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2021-09-06 17:04:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-06 17:04:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-06 17:04:52 +0200wroathe(~wroathe@user/wroathe)
2021-09-06 17:13:43 +0200zebrag(~chris@user/zebrag)
2021-09-06 17:17:33 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-09-06 17:18:16 +0200hendursaga(~weechat@user/hendursaga)
2021-09-06 17:19:16 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2021-09-06 17:19:20 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-09-06 17:19:43 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2021-09-06 17:22:33 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-09-06 17:25:23 +0200burnsidesLlama(~burnsides@client-8-65.eduroam.oxuni.org.uk)
2021-09-06 17:26:07 +0200john2312(~user@114.250.137.142)
2021-09-06 17:26:57 +0200lavaman(~lavaman@98.38.249.169)
2021-09-06 17:29:16 +0200 <john2312> earlyExit :: [Int] -> Cont [Int] Int; earlyExit alist = do { r <- cont $ k -> k <$> alist; return [r] } why <$> can't work here?
2021-09-06 17:29:42 +0200burnsidesLlama(~burnsides@client-8-65.eduroam.oxuni.org.uk) (Ping timeout: 245 seconds)
2021-09-06 17:30:23 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-06 17:31:24 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-09-06 17:34:34 +0200leplep-
2021-09-06 17:35:12 +0200 <john2312> this is the code https://paste.tomsmeding.com/JP4DbWYC
2021-09-06 17:35:24 +0200jakalx(~jakalx@base.jakalx.net)
2021-09-06 17:36:40 +0200anderson(~ande@134.209.221.71) (Quit: bye)
2021-09-06 17:38:40 +0200anderson(~ande@134.209.221.71)
2021-09-06 17:39:14 +0200eldritch_(~eldritch@user/eldritch/x-9272577) (Quit: bye)
2021-09-06 17:39:39 +0200eldritch_(~eldritch@user/eldritch/x-9272577)
2021-09-06 17:40:52 +0200lep-lep
2021-09-06 17:41:13 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-09-06 17:43:27 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds)
2021-09-06 17:45:10 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 240 seconds)
2021-09-06 17:47:15 +0200jtomas_(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-09-06 17:47:31 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-06 17:48:28 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-06 17:49:35 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
2021-09-06 17:51:48 +0200cheater(~Username@user/cheater) (Ping timeout: 256 seconds)
2021-09-06 17:52:17 +0200cheater(~Username@user/cheater)
2021-09-06 17:52:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-06 17:54:40 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:7d83:b820:1845:d06c) (Quit: WeeChat 2.8)
2021-09-06 17:58:52 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds)
2021-09-06 18:00:21 +0200vysn(~vysn@user/vysn)
2021-09-06 18:01:45 +0200 <maerwald> john2312: `k` is supposed to be a function from `Int -> [Int]`
2021-09-06 18:02:16 +0200 <john2312> maerwald yes, how I should change it?
2021-09-06 18:02:25 +0200haykam1(~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
2021-09-06 18:02:28 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-09-06 18:02:28 +0200 <maerwald> I don't really know what you're trying to do
2021-09-06 18:02:56 +0200haykam(~haykam@static.100.2.21.65.clients.your-server.de)
2021-09-06 18:03:02 +0200vysn(~vysn@user/vysn) (Client Quit)
2021-09-06 18:03:19 +0200vysn(~vysn@user/vysn)
2021-09-06 18:03:23 +0200 <john2312> maerwald there's a list [1..10], and a function (+1), fmap (+1) [1..10] if the result contain 3 then early exit
2021-09-06 18:04:04 +0200 <john2312> I know there's traverse can do that, but I'd like to know how Cont do that
2021-09-06 18:05:21 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Remote host closed the connection)
2021-09-06 18:05:25 +0200 <kuribas> You can always write a left fold as a CPS right fold.
2021-09-06 18:05:27 +0200kenran(~kenran@200116b82b69d400aaf124cc120a0e32.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2021-09-06 18:05:36 +0200 <kuribas> Which allows early exit.
2021-09-06 18:05:39 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 18:05:39 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-09-06 18:06:07 +0200 <Clint> so you want f (+1) [1..10] = [2,3] ?
2021-09-06 18:10:30 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2021-09-06 18:10:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-09-06 18:11:07 +0200 <john2312> yes
2021-09-06 18:14:07 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net)
2021-09-06 18:19:05 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-09-06 18:20:57 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-06 18:21:50 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 256 seconds)
2021-09-06 18:22:08 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 18:24:24 +0200dajoer(~david@user/gvx) (Quit: leaving)
2021-09-06 18:24:40 +0200 <ldlework> I have an infinite loop here somewhere but I don't see it, https://gist.github.com/dustinlacewell/2fe2bd282a794a97677cf723b4499989
2021-09-06 18:24:49 +0200 <ldlework> Can anyone help me spot it?
2021-09-06 18:25:20 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 252 seconds)
2021-09-06 18:26:28 +0200 <ldlework> Oh I probably don't want to be mapping my draw function over the balloons
2021-09-06 18:27:01 +0200 <ldlework> I probably need to like... "reduce" it
2021-09-06 18:27:49 +0200 <ldlework> hmm
2021-09-06 18:28:29 +0200 <ldlework> I guess I have no clue how to actually draw multiple things with Gloss
2021-09-06 18:29:34 +0200 <ldlework> oh the `pictures` function takes a list of pictures
2021-09-06 18:29:39 +0200 <ldlework> so this should be doing the right thing
2021-09-06 18:30:58 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds)
2021-09-06 18:31:16 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 18:31:47 +0200berberman_(~berberman@user/berberman) (Ping timeout: 240 seconds)
2021-09-06 18:31:54 +0200polyphem(~polyphem@2a02:810d:640:776c:1bc:e34d:641e:231a)
2021-09-06 18:32:08 +0200berberman(~berberman@user/berberman)
2021-09-06 18:34:35 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-06 18:35:18 +0200Vajb(~Vajb@n1xq4ni1adi29tefj-2.v6.elisa-mobile.fi)
2021-09-06 18:36:10 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-09-06 18:36:47 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 245 seconds)
2021-09-06 18:37:06 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 18:38:09 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-09-06 18:39:36 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 18:40:13 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 18:43:40 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds)
2021-09-06 18:44:29 +0200poljar1(~poljar@78-3-12-111.adsl.net.t-com.hr)
2021-09-06 18:44:46 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 18:45:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-09-06 18:45:21 +0200poljar(~poljar@93-139-4-196.adsl.net.t-com.hr) (Ping timeout: 248 seconds)
2021-09-06 18:45:36 +0200wroathe(~wroathe@user/wroathe) (Quit: leaving)
2021-09-06 18:47:24 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-06 18:47:25 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-06 18:47:25 +0200wroathe(~wroathe@user/wroathe)
2021-09-06 18:47:35 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 18:48:02 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 18:48:11 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net)
2021-09-06 18:48:15 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-09-06 18:49:02 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 18:53:13 +0200Skyfire(~pyon@user/pyon) (Quit: WeeChat 3.2)
2021-09-06 18:53:14 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 18:53:19 +0200dhruvasagar(~dhruvasag@49.207.59.235) (Ping timeout: 252 seconds)
2021-09-06 18:53:34 +0200john2312(~user@114.250.137.142) (Ping timeout: 256 seconds)
2021-09-06 18:53:48 +0200Skyfire(~pyon@user/pyon)
2021-09-06 18:53:56 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-06 18:55:22 +0200 <ldlework> In this example, why are all the dots cyan? And why is the random distribution so strange?
2021-09-06 18:55:24 +0200 <ldlework> https://i.imgur.com/Ex54t3f.png
2021-09-06 18:56:07 +0200 <monochrom> Because you use the same rng for every sequence.
2021-09-06 18:56:27 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 18:57:24 +0200 <ldlework> monochrom: shouldn't it just keep producing random numbers though?
2021-09-06 18:57:42 +0200 <ldlework> I'm probably deeply confused about rng.
2021-09-06 18:58:18 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-09-06 18:58:18 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 18:58:38 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 18:58:45 +0200 <hpc> you're not using a true random number generator, you're using a sequence that's random-like and has some initial conditions
2021-09-06 18:58:54 +0200 <hpc> if you use the same initial conditions, you get the same sequence every time
2021-09-06 18:59:04 +0200 <monochrom> First ask yourself is rng a mutable variable or is it an immutable piece of data.
2021-09-06 18:59:07 +0200 <hpc> but if you take lots of samples from a single sequence, it looks random
2021-09-06 18:59:15 +0200 <ldlework> I'm OK with the deterministic random numbers, just curious about the distribution.
2021-09-06 18:59:48 +0200 <ldlework> monochrom: I am really new to Haskell, but I assumed it was doing some IO magic I don't understand yet.
2021-09-06 19:00:02 +0200 <hpc> with immutable values, when you take from an rng you get a value and a new rng
2021-09-06 19:00:08 +0200 <monochrom> What is the type?
2021-09-06 19:00:09 +0200 <ldlework> huh
2021-09-06 19:00:29 +0200 <monochrom> In Haskell, IO magic you don't understand carries the "IO" type.
2021-09-06 19:00:42 +0200 <monochrom> If you don't see it, no IO magic is done.
2021-09-06 19:00:46 +0200 <monochrom> So, do you see it?
2021-09-06 19:00:47 +0200 <hpc> it doesn't seek through the sequence like a file handle or something like that
2021-09-06 19:01:10 +0200 <ldlework> hpc: that's what I imagined, I've got a python/js/C# background
2021-09-06 19:01:15 +0200 <hpc> @let example = [1..10]
2021-09-06 19:01:17 +0200 <lambdabot> Defined.
2021-09-06 19:01:29 +0200 <hpc> > take 1 example -- basically you did this
2021-09-06 19:01:30 +0200 <lambdabot> [1]
2021-09-06 19:01:33 +0200 <hpc> > take 1 example -- and then this
2021-09-06 19:01:34 +0200 <lambdabot> [1]
2021-09-06 19:02:00 +0200 <ldlework> hpc: so in generating a list of numbers do you have to sort of use some kind of reduction where you are passing the new rng to the next production etc?
2021-09-06 19:02:08 +0200 <monochrom> Compared to python/js/C#, there is surprisingly little IO magic in Haskell.
2021-09-06 19:02:28 +0200 <hpc> yeah, or something like that
2021-09-06 19:02:32 +0200 <monochrom> If you have C# "int foo(int)", it may or may not do IO magic behind your back.
2021-09-06 19:02:39 +0200 <ldlework> monochrom: I wasn't accusing haskell of using being magic, only describing my ignorance
2021-09-06 19:02:44 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-09-06 19:02:51 +0200 <monochrom> But if you have Haskell, "foo :: Int -> Int", then it doesn't. End of story.
2021-09-06 19:03:09 +0200 <hpc> or you could use IO and have a mutable rng
2021-09-06 19:03:14 +0200 <monochrom> If rng :: StdGen, since it is not "rng :: IO StdGen", there is no IO magic.
2021-09-06 19:03:39 +0200 <monochrom> And I asked a simple question too. Is rng mutable or immutable?
2021-09-06 19:03:45 +0200wroathe(~wroathe@user/wroathe) (Quit: leaving)
2021-09-06 19:03:48 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-09-06 19:03:49 +0200 <monochrom> You still haven't answered that.
2021-09-06 19:03:53 +0200 <ldlework> monochrom: I've taken your point long ago :P thank you
2021-09-06 19:04:00 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-06 19:04:00 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-06 19:04:00 +0200wroathe(~wroathe@user/wroathe)
2021-09-06 19:04:35 +0200 <hpc> another idea might be an instance of https://hackage.haskell.org/package/random-1.2.0/docs/System-Random.html#t:Random for your points that does some of the legwork for you
2021-09-06 19:04:36 +0200Vajb(~Vajb@n1xq4ni1adi29tefj-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-09-06 19:05:02 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 19:05:16 +0200 <hpc> the instance scans the rng forward 4 times to make a point
2021-09-06 19:05:25 +0200 <hpc> and then in the code that uses it, you just say "i want a bunch of points"
2021-09-06 19:05:25 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-09-06 19:05:58 +0200 <hpc> (and making sure to return the right rng in your instance)
2021-09-06 19:06:04 +0200 <ldlework> hpc: thanks. I admit I have a small bit of challenge curiosity to see if there is a little succinct pattern to do that rng passing to generate a list of N random numbers
2021-09-06 19:06:10 +0200 <monochrom> The standard thing to do in this case is if you need 4 independent sequences, you take your rng and use "split" 3 or 4 times to get 4 or 5 gens.
2021-09-06 19:06:41 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-06 19:06:59 +0200 <ldlework> I'm still pretty bad at thinking functionally
2021-09-06 19:07:56 +0200 <hpc> monochrom: i thought of suggesting that, but i don't remember if all the issues with split got ironed out
2021-09-06 19:08:25 +0200 <ldlework> hpc: ah you are pointing me to the *s versions of the functions?
2021-09-06 19:08:34 +0200 <ldlework> like randomRs and randoms
2021-09-06 19:08:49 +0200 <monochrom> random-1.2 uses splitmix which has a very good split.
2021-09-06 19:09:00 +0200 <hpc> ah, cool
2021-09-06 19:09:07 +0200 <monochrom> See the paper. It's a very clever idea.
2021-09-06 19:09:28 +0200 <monochrom> Hell, it's called "splitmix" for a reason!
2021-09-06 19:09:49 +0200 <hpc> iqubic: at the top level, yeah
2021-09-06 19:10:02 +0200 <monochrom> random-tf uses a very similar idea. splitmix adds a speedup optimization.
2021-09-06 19:10:05 +0200 <hpc> ldlework: rather
2021-09-06 19:10:52 +0200 <ldlework> Hmm, I'm using `x <- take n (randomRs (-200, 200) (mkStdGen 0))` shouldn't that produce an infinite list, then take n?
2021-09-06 19:10:59 +0200 <hpc> is there a free link for the paper?
2021-09-06 19:11:11 +0200 <monochrom> Getting multiple sequences under randomRIO is really annoying.
2021-09-06 19:11:32 +0200 <monochrom> also very slow (because IORef is slow)
2021-09-06 19:11:39 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 19:12:48 +0200 <ldlework> seems like it should work no?
2021-09-06 19:13:43 +0200 <ldlework> Also curious, I'm only generating 5 "Balloons" but there are many more dots than that: http://logos.ldlework.com/caps/2021-09-06-17-13-12.png
2021-09-06 19:14:11 +0200 <ldlework> And I'm also unsure why only the last color, cyan, is ever used in the list comprehension source for `c`.
2021-09-06 19:16:25 +0200kuribas(~user@ptr-25vy0i6xfv8pdfgun1l.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-09-06 19:16:54 +0200ldleworkscratches his head.
2021-09-06 19:17:53 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 19:18:07 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 19:20:30 +0200 <ldlework> hpc: I've got no shared rng now, i'm using the *s versions of the functions, and the behavior is much the same.
2021-09-06 19:20:48 +0200 <monochrom> hpc: I smuggled it out: http://www.cs.utoronto.ca/~trebla/tmp/splitmix.pdf
2021-09-06 19:21:13 +0200 <hpc> monochrom: it'll be our little secret :D
2021-09-06 19:21:20 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-09-06 19:21:56 +0200 <hpc> although now i am remembering that i hate reading papers
2021-09-06 19:22:14 +0200 <hpc> the two-column pdf that's just barely too long to fit on a screen is beyond frustrating
2021-09-06 19:22:28 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-06 19:22:38 +0200econo(uid147250@user/econo)
2021-09-06 19:22:39 +0200 <monochrom> IIRC TL;DR: every random number is the end of a history that goes like <make, next, next, left, next next, right, left, right, next, next>. If you use a really good hash function to hash that history, that's your random numbers.
2021-09-06 19:22:45 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 19:22:48 +0200 <monochrom> s/numbers./number/
2021-09-06 19:23:41 +0200neurocyte(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-09-06 19:24:28 +0200slavaqq(~slavaqq@sdmail.sdserver.cz) (Quit: Client closed)
2021-09-06 19:24:33 +0200 <hpc> huh
2021-09-06 19:24:49 +0200 <hpc> when you put it like that it's obviously how it should have always been
2021-09-06 19:24:59 +0200 <monochrom> :)
2021-09-06 19:25:51 +0200 <hpc> yeah, basically the whole idea is captured in figure 2
2021-09-06 19:25:57 +0200 <hpc> and the rest of it might as well be appendices
2021-09-06 19:26:30 +0200 <monochrom> Nah, but it's fair to say the rest is engineering to make it faster and leaner.
2021-09-06 19:27:06 +0200neurocyte(~neurocyte@45.93.111.173)
2021-09-06 19:27:06 +0200neurocyte(~neurocyte@45.93.111.173) (Changing host)
2021-09-06 19:27:06 +0200neurocyte(~neurocyte@user/neurocyte)
2021-09-06 19:29:34 +0200 <ldlework> https://i.imgur.com/5ARmVUN.png
2021-09-06 19:29:49 +0200 <ldlework> I've taken out all of the randomness, and just hardcoded the arrays for x, y, r, and c
2021-09-06 19:29:57 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 19:30:02 +0200 <ldlework> I guess I don't understand list-comprehensions at all
2021-09-06 19:31:00 +0200 <ldlework> Why is it generating a 5x5 matrix of circles, but with all the same radius and color?
2021-09-06 19:31:25 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.2)
2021-09-06 19:31:26 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 19:32:11 +0200 <tomsmeding> ldlework: that list comprehension should be read as follows: for each x in that list, for each y in that list, for each r in that list, for each c in that list, yield the element before the |
2021-09-06 19:32:21 +0200 <tomsmeding> so you're getting 5 * 5 * 5 * 6 elements in that list
2021-09-06 19:32:38 +0200 <ldlework> Oh it produces the "product" of all sources.
2021-09-06 19:32:42 +0200 <tomsmeding> (0,0,5,red), (0,0,5,green), etc
2021-09-06 19:32:44 +0200 <ldlework> But why only 1 radius and color?
2021-09-06 19:32:55 +0200Core1865(~w-spc-gir@2600:380:8428:102f:bd54:8b5c:2bc5:49d)
2021-09-06 19:32:57 +0200 <tomsmeding> presumably the other ones are also drawn but just underneath? just a guess
2021-09-06 19:33:10 +0200 <tomsmeding> like, you're probably only seeing the largest radius with the last colour
2021-09-06 19:33:14 +0200Core1865(~w-spc-gir@2600:380:8428:102f:bd54:8b5c:2bc5:49d) (Read error: Connection reset by peer)
2021-09-06 19:33:19 +0200 <ldlework> interesting
2021-09-06 19:34:03 +0200 <ldlework> So I suppose my fundamental problem is trying to use a list comprehension here in the first place.
2021-09-06 19:34:13 +0200 <tomsmeding> what result do you want? :p
2021-09-06 19:34:13 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-09-06 19:34:23 +0200MQ-17J(~MQ-17J@8.21.10.6)
2021-09-06 19:34:25 +0200 <ldlework> tomsmeding: just trying to generate 5 "Balloons" each with random position, radius and color
2021-09-06 19:34:36 +0200 <ldlework> I'm on day like 8 of haskell
2021-09-06 19:35:40 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Ping timeout: 252 seconds)
2021-09-06 19:36:54 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-06 19:36:55 +0200 <monochrom> This is why at some point you should print out the sequences as text.
2021-09-06 19:37:32 +0200 <ldlework> aww there is a zipWith3 but not zipWith4 haha
2021-09-06 19:37:43 +0200 <tomsmeding> :t Data.List.zipWith4
2021-09-06 19:37:44 +0200 <lambdabot> (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
2021-09-06 19:37:44 +0200 <ldlework> circles = zipWith4 Balloon xs ys rs cs
2021-09-06 19:37:50 +0200 <ldlework> oh
2021-09-06 19:37:57 +0200maerwald(~maerwald@mail.hasufell.de) (Changing host)
2021-09-06 19:37:57 +0200maerwald(~maerwald@user/maerwald)
2021-09-06 19:38:17 +0200 <ldlework> :O that worked
2021-09-06 19:38:18 +0200 <monochrom> I have always felt bad that I only teach students textual I/O and never showed them graphics I/O.
2021-09-06 19:38:32 +0200 <monochrom> But this case restores my faith in text.
2021-09-06 19:38:37 +0200 <ldlework> http://logos.ldlework.com/caps/2021-09-06-17-38-26.png
2021-09-06 19:38:58 +0200MQ-17J(~MQ-17J@8.21.10.6) (Ping timeout: 252 seconds)
2021-09-06 19:42:28 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 19:42:47 +0200 <ldlework> tomsmeding: now the random stuff is working too, thanks a lot
2021-09-06 19:43:03 +0200 <tomsmeding> nice :)
2021-09-06 19:43:12 +0200 <ldlework> monochrom, hpc thanks for pointing out the purity issue
2021-09-06 19:43:30 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 19:43:38 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:51c9:9325:5764:1e14)
2021-09-06 19:44:24 +0200 <ldlework> tomsmeding: what if you needed to zip across more than 7 things
2021-09-06 19:44:43 +0200 <ldlework> i guess you just build what you need
2021-09-06 19:44:47 +0200 <tomsmeding> yeah :p
2021-09-06 19:45:42 +0200 <tomsmeding> though if you need to zip more than 7 things, I'd first question whether you can perhaps do things differently too
2021-09-06 19:46:17 +0200 <tomsmeding> for example, you're generating x and y coordinates; what you could also do is make a datatype `data Pos = Pos Int Int`, and then make `Pos` an instance of the `Random` type class defined in System.Random
2021-09-06 19:46:40 +0200 <tomsmeding> then you can use `random` and `randomR` etc to generate values of type `Pos` directly
2021-09-06 19:46:54 +0200 <ldlework> yeah that makes sense
2021-09-06 19:47:14 +0200 <tomsmeding> usually there will be more structure to the problem than "I have 9 different lists that I want to zip together" :p
2021-09-06 19:47:24 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2021-09-06 19:47:36 +0200nicbk(~nicbk@user/nicbk)
2021-09-06 19:48:13 +0200 <tomsmeding> ldlework: in case you haven't done so yet: I invite you to look at the source code for simple functions like these https://hackage.haskell.org/package/base-4.14.0.0/docs/src/Data.OldList.html#zipWith7
2021-09-06 19:48:48 +0200 <tomsmeding> the definitions of those "basic" functions is often (not always, but often) refreshingly simple in my experience
2021-09-06 19:49:15 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 19:49:30 +0200hololeap_(~hololeap@user/hololeap)
2021-09-06 19:50:33 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-09-06 19:51:16 +0200 <ldlework> I should probably stop screwing around with graphics and get back to finishing the haskell book I'm working through :P
2021-09-06 19:51:36 +0200tomsmedingstarted programming with MSWLogo at some point
2021-09-06 19:52:46 +0200Sgeo(~Sgeo@user/sgeo)
2021-09-06 19:53:20 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-06 19:55:03 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 19:56:07 +0200lavaman(~lavaman@98.38.249.169)
2021-09-06 19:56:35 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 20:00:29 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-09-06 20:02:08 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-06 20:02:32 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-06 20:03:45 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-09-06 20:03:52 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 20:05:00 +0200 <zzz> ghc instalatin with ghcup is failing with "ghcup: user error (JSON decoding failed with: YAML exception:
2021-09-06 20:05:19 +0200 <zzz> Yaml file not found:"
2021-09-06 20:05:35 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 20:05:41 +0200 <[exa]> well, sounds messed up. what's your envirnoment?
2021-09-06 20:05:49 +0200 <zzz> anyone had this problem?
2021-09-06 20:05:57 +0200 <maerwald> zzz: can you wget/curl https://www.haskell.org/ghcup/data/ghcup-0.0.6.yaml
2021-09-06 20:07:19 +0200machinedgod(~machinedg@24.105.81.50)
2021-09-06 20:07:52 +0200kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
2021-09-06 20:07:55 +0200 <zzz> yes
2021-09-06 20:08:25 +0200 <zzz> should i mv it to ~/.ghcup/cache and try again?
2021-09-06 20:08:31 +0200 <maerwald> no
2021-09-06 20:08:35 +0200 <maerwald> what ghcup version?
2021-09-06 20:08:59 +0200 <zzz> 0.1.16.2
2021-09-06 20:09:12 +0200 <maerwald> what's inside ~/.ghcup/cache?
2021-09-06 20:09:30 +0200 <zzz> cabal-install-3.2.0.0-i386-unknown-linux.tar.xz ghc-8.8.4-i386-deb9-linux.tar.xz ghcup-0.0.2.yaml ghcup-0.0.3.yaml ghcup-0.0.4.yaml
2021-09-06 20:09:46 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 252 seconds)
2021-09-06 20:10:03 +0200 <maerwald> oh, i386?
2021-09-06 20:10:08 +0200 <zzz> yup :)
2021-09-06 20:10:43 +0200kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Client Quit)
2021-09-06 20:11:02 +0200kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
2021-09-06 20:11:10 +0200 <zzz> [exa]: sorry i missed that. here's your answer
2021-09-06 20:11:19 +0200 <maerwald> can't reproduce
2021-09-06 20:11:29 +0200 <maerwald> did you test the download with wget or curl?
2021-09-06 20:11:31 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-06 20:11:34 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2021-09-06 20:11:35 +0200 <zzz> wget
2021-09-06 20:11:45 +0200 <maerwald> try: ghcup --downloader=wget tui
2021-09-06 20:11:49 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-06 20:12:41 +0200Erutuon(~Erutuon@user/erutuon)
2021-09-06 20:13:03 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 20:15:28 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2021-09-06 20:17:06 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-06 20:17:12 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2021-09-06 20:17:19 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Remote host closed the connection)
2021-09-06 20:17:37 +0200xsperry(~as@user/xsperry)
2021-09-06 20:18:58 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)
2021-09-06 20:20:07 +0200tomsmedingfinds the error message interesting in itself: "JSON decoding failed with: YAML exception:" -- so was it decoding json or yaml? :p
2021-09-06 20:20:53 +0200 <maerwald> tomsmeding: ghcup falls back to reading the yaml from the cache folder if download fails with a warning
2021-09-06 20:21:19 +0200 <maerwald> so yeah, the error needs to be better
2021-09-06 20:21:31 +0200 <tomsmeding> yeah but, there's no json involved here, right?
2021-09-06 20:21:45 +0200 <maerwald> yaml decoding is done via aeson
2021-09-06 20:21:50 +0200 <tomsmeding> ah
2021-09-06 20:22:27 +0200sim590(~simon@modemcable090.207-203-24.mc.videotron.ca)
2021-09-06 20:22:56 +0200thyriaen(~thyriaen@x4dbf2170.dyn.telefonica.de) (Remote host closed the connection)
2021-09-06 20:23:31 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-06 20:23:34 +0200thmprover(~user@047-042-215-236.res.spectrum.com)
2021-09-06 20:23:48 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-06 20:25:00 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 20:26:14 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 20:28:29 +0200 <zzz> i find comments like these appearing during instalation funny: "[ ghc-make ] # For some reason, this means the DLLs end up non-executable, which means
2021-09-06 20:28:39 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 20:29:11 +0200 <maerwald> just close your eyes during installation
2021-09-06 20:29:18 +0200 <zzz> :)
2021-09-06 20:30:06 +0200 <zzz> [ ghc-make ] # Reticulating splines
2021-09-06 20:30:15 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 20:30:15 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 20:30:19 +0200 <hpc> [ ghc-make ] # Turning it off and on again
2021-09-06 20:30:27 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 20:31:17 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-09-06 20:33:22 +0200polyphem(~polyphem@2a02:810d:640:776c:1bc:e34d:641e:231a) (Remote host closed the connection)
2021-09-06 20:33:30 +0200polyphem(~polyphem@2a02:810d:640:776c:1bc:e34d:641e:231a)
2021-09-06 20:34:34 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-09-06 20:35:31 +0200kawpuh(~kawpuh@097-082-066-236.res.spectrum.com)
2021-09-06 20:36:52 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 20:36:56 +0200 <monochrom> Ah but what is DLL doing on 32-bit linux? >:)
2021-09-06 20:37:52 +0200 <monochrom> Yeah these error messages are getting more and more mysterious by mentioning entities that shouldn't even exist.
2021-09-06 20:38:14 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 20:38:20 +0200 <zzz> it's just random bashing on windows during installation
2021-09-06 20:38:28 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 20:38:35 +0200 <monochrom> "Linux error: Cannot find Windows registry." "Windows error: MacOS not found."
2021-09-06 20:39:06 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 20:39:13 +0200 <maerwald> makefile verbosity probably prints all sorts of stuff
2021-09-06 20:39:18 +0200 <monochrom> "MacOS error: NeXT installation failed"
2021-09-06 20:39:36 +0200 <maerwald> the output is supposed to be an entertainment
2021-09-06 20:39:43 +0200 <monochrom> haha OK!
2021-09-06 20:41:48 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 250 seconds)
2021-09-06 20:41:55 +0200 <zzz> i have a feeling that's my new go-to phrase
2021-09-06 20:43:34 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 20:43:47 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 20:44:14 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Client Quit)
2021-09-06 20:44:28 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 20:45:03 +0200haykam(~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
2021-09-06 20:45:17 +0200haykam(~haykam@static.100.2.21.65.clients.your-server.de)
2021-09-06 20:46:58 +0200 <fendor_> is there some way to find all usages of a typeclass function for a specific type? Context is, a type has changed s.t. its typeclass implementation of equality is insufficient for our use-case
2021-09-06 20:47:13 +0200kawpuh(~kawpuh@097-082-066-236.res.spectrum.com) (Quit: Client closed)
2021-09-06 20:48:16 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds)
2021-09-06 20:48:38 +0200aman(~aman@user/aman) (Quit: aman)
2021-09-06 20:48:44 +0200fendor_fendor
2021-09-06 20:49:11 +0200 <fendor> now I need to know where a typeclass function is used and review its usage
2021-09-06 20:55:39 +0200 <dminuoso> fendor: HLS should provide that information.
2021-09-06 20:56:02 +0200 <dminuoso> For example, if you're using emacs with lsp you can use `M-x lsp-find-references`
2021-09-06 20:56:02 +0200 <fendor> I don't think that is type specific yet
2021-09-06 20:57:30 +0200 <fendor> e.g. can't find the usage of '==' for a specific type
2021-09-06 20:57:35 +0200 <dminuoso> Ahh
2021-09-06 20:58:07 +0200 <zzz> maerwald: it worked, thanks
2021-09-06 20:58:09 +0200 <dminuoso> fendor: Perhaps WARNING/DEPRECATED pragmas can be attached to a method?
2021-09-06 20:58:16 +0200 <maerwald> zzz: that means your curl is busted I think
2021-09-06 20:58:49 +0200 <dminuoso> fendor: Also, you could just remove that instance and find all errors.
2021-09-06 20:59:12 +0200 <fendor> the offending instance is in ghc, probably too many errors and won't see the one I care about
2021-09-06 20:59:14 +0200 <dminuoso> Though that can cause errors on type signatures, so perhaps not too helpful
2021-09-06 20:59:28 +0200 <fendor> but deprecation sounds nice
2021-09-06 20:59:33 +0200 <fendor> maybe that works
2021-09-06 20:59:54 +0200 <dminuoso> fendor: My feeling says it wont work.
2021-09-06 20:59:57 +0200 <dminuoso> The reason is:
2021-09-06 21:00:06 +0200 <dminuoso> Typeclasses generally get compiled into dictionaries.
2021-09-06 21:00:42 +0200 <fendor> yeah... Maybe I can't avoid newtyping it
2021-09-06 21:01:07 +0200 <dminuoso> Though in principle it could be technically viable if the deprecation/warning was made available in interface files
2021-09-06 21:01:48 +0200 <fendor> but adding a deprecation to a function of an instance... sounds similar to the orphan instance issue
2021-09-06 21:02:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-09-06 21:02:42 +0200 <dminuoso> The more I think about it, HLS seems like it would be your best bet
2021-09-06 21:03:27 +0200 <dminuoso> It's the only piece that has a coherent picture of types and definitions across modules and libraries.
2021-09-06 21:03:38 +0200 <dminuoso> (Or something similar to HLS)
2021-09-06 21:04:02 +0200 <fendor> yeah, it should be possible with hiedb
2021-09-06 21:04:11 +0200 <fendor> but I just wanted to add a simple fix :D
2021-09-06 21:09:39 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-06 21:09:39 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-06 21:09:39 +0200wroathe(~wroathe@user/wroathe)
2021-09-06 21:13:15 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 21:14:53 +0200kenran(~kenran@200116b82b69d400311395ece9782858.dip.versatel-1u1.de)
2021-09-06 21:16:59 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:51c9:9325:5764:1e14) (Remote host closed the connection)
2021-09-06 21:19:30 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
2021-09-06 21:20:50 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Remote host closed the connection)
2021-09-06 21:21:01 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 21:21:28 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-06 21:22:10 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 21:22:24 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:51c9:9325:5764:1e14)
2021-09-06 21:24:20 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-06 21:26:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:51c9:9325:5764:1e14) (Ping timeout: 240 seconds)
2021-09-06 21:26:50 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2021-09-06 21:27:24 +0200max22-(~maxime@2a01cb0883359800f259119bb9ba011d.ipv6.abo.wanadoo.fr)
2021-09-06 21:29:23 +0200fendor(~fendor@91.141.66.73.wireless.dyn.drei.com) (Remote host closed the connection)
2021-09-06 21:32:04 +0200son0p(~ff@181.136.122.143) (Ping timeout: 250 seconds)
2021-09-06 21:32:59 +0200nckx(~nckx@tobias.gr) (Quit: Updating my Guix System <https://guix.gnu.org>)
2021-09-06 21:34:15 +0200Guest|55(~Guest|55@syr-140-120.syr.edu)
2021-09-06 21:34:44 +0200 <Guest|55> hello I'm having trouble downloading Haskell to my mac
2021-09-06 21:35:10 +0200nckx(~nckx@tobias.gr)
2021-09-06 21:35:35 +0200Guest|55(~Guest|55@syr-140-120.syr.edu) (Client Quit)
2021-09-06 21:35:58 +0200fendor(~fendor@91.141.66.73.wireless.dyn.drei.com)
2021-09-06 21:38:48 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 21:39:06 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 21:42:37 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2021-09-06 21:42:51 +0200polyphem(~polyphem@2a02:810d:640:776c:1bc:e34d:641e:231a) (Remote host closed the connection)
2021-09-06 21:46:12 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 21:47:51 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com)
2021-09-06 21:48:07 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 21:48:47 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:51c9:9325:5764:1e14)
2021-09-06 21:50:46 +0200adium(adium@user/adium) (Quit: Stable ZNC by #bnc4you)
2021-09-06 21:54:27 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 21:54:38 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 21:54:51 +0200Core7090(~w-spc-gir@2600:380:8428:102f:5c57:d44:67c2:70e8)
2021-09-06 21:57:01 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Ping timeout: 252 seconds)
2021-09-06 21:58:07 +0200wonko(~wjc@62.115.229.50) (Ping timeout: 252 seconds)
2021-09-06 21:58:55 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-09-06 21:59:15 +0200kuribas(~user@ptr-25vy0i8j7arm4sqpwno.18120a2.ip6.access.telenet.be)
2021-09-06 22:00:04 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-06 22:00:24 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-06 22:00:58 +0200Core7090(~w-spc-gir@2600:380:8428:102f:5c57:d44:67c2:70e8) (Read error: Connection reset by peer)
2021-09-06 22:01:58 +0200adium(adium@user/adium)
2021-09-06 22:04:45 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 22:05:02 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 22:05:10 +0200juhp(~juhp@128.106.188.220) (Ping timeout: 240 seconds)
2021-09-06 22:05:13 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-09-06 22:06:28 +0200w-spc-gir(~w-spc-gir@2600:380:8428:102f:5c57:d44:67c2:70e8)
2021-09-06 22:07:32 +0200w-spc-gir(~w-spc-gir@2600:380:8428:102f:5c57:d44:67c2:70e8) (Read error: Connection reset by peer)
2021-09-06 22:07:44 +0200machinedgod(~machinedg@24.105.81.50)
2021-09-06 22:08:01 +0200juhp(~juhp@128.106.188.220)
2021-09-06 22:08:26 +0200sky_lounge[m](~skylounge@2001:470:69fc:105::efa6)
2021-09-06 22:10:08 +0200w-spc-gir(~w-spc-gir@2600:380:8428:102f:5c57:d44:67c2:70e8)
2021-09-06 22:11:54 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 256 seconds)
2021-09-06 22:12:21 +0200w-spc-gir(~w-spc-gir@2600:380:8428:102f:5c57:d44:67c2:70e8) (Read error: Connection reset by peer)
2021-09-06 22:15:42 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-09-06 22:16:08 +0200w-spc-gir(~w-spc-gir@c-73-170-32-12.hsd1.ca.comcast.net)
2021-09-06 22:20:53 +0200 <maerwald> zzz: do you think that'll be more helpful? https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/228
2021-09-06 22:21:19 +0200kuribas(~user@ptr-25vy0i8j7arm4sqpwno.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-09-06 22:22:06 +0200 <maerwald> zzz: specifically `ghcup config set downloader Wget`
2021-09-06 22:27:32 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 250 seconds)
2021-09-06 22:28:02 +0200 <ldlework> tomsmeding: If you have a data type that is highly nested (you're trying to keep your types small and narrow), what is the way of going about extracting and updating the attributes deep inside an object
2021-09-06 22:28:11 +0200 <ldlework> such that you avoid highly-nested pattern matching structures
2021-09-06 22:29:38 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-09-06 22:30:08 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 22:30:21 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 22:30:28 +0200w-spc-gir(~w-spc-gir@c-73-170-32-12.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
2021-09-06 22:38:28 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-06 22:40:11 +0200 <tomsmeding> ldlework: the standard way to make code with such data structures shorter/nicer is to use lenses or optics
2021-09-06 22:40:30 +0200 <tomsmeding> but if you're on day 8 of haskell, best not go there yet probably :p
2021-09-06 22:42:05 +0200favonia(~favonia@user/favonia)
2021-09-06 22:42:09 +0200 <tomsmeding> ldlework: but if you're feeling really adventurous, I think I recommend this library: https://hackage.haskell.org/package/optics-0.4/docs/Optics.html
2021-09-06 22:42:46 +0200 <tomsmeding> there is also 'lens' with a longer tradition; both libraries have relative advantages and disadvantages but 'optics' generally has better error messages (for one thing)
2021-09-06 22:45:04 +0200 <tomsmeding> (and https://www.youtube.com/watch?v=AGjTAurqQoY, but again, please let this wait until you're _much_ more comfortable with the language!)
2021-09-06 22:45:51 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-06 22:46:10 +0200kenran(~kenran@200116b82b69d400311395ece9782858.dip.versatel-1u1.de) (Ping timeout: 250 seconds)
2021-09-06 22:47:11 +0200kenran(~kenran@200116b82b69d400934af33d768b2e7f.dip.versatel-1u1.de)
2021-09-06 22:47:25 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-09-06 22:47:25 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-09-06 22:47:28 +0200allbery_bgeekosaur
2021-09-06 22:47:45 +0200fendor(~fendor@91.141.66.73.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-09-06 22:47:51 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-06 22:48:04 +0200 <dsal> I'm tempted to recommend a book on this, but yeah, it won't make a lot of sense if you're starting fresh. It's quite possible you're just not modeling things well enough. Or if you are, you're starting out learning about profunctors while most people are still learning amateur functors.
2021-09-06 22:48:25 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-09-06 22:51:13 +0200lavaman(~lavaman@98.38.249.169)
2021-09-06 22:51:31 +0200kenran(~kenran@200116b82b69d400934af33d768b2e7f.dip.versatel-1u1.de) (Client Quit)
2021-09-06 22:53:07 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
2021-09-06 22:53:08 +0200tomsmeding. o O ( functors for pros )
2021-09-06 22:54:16 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 22:55:08 +0200 <dsal> I used to get profunctors and bifunctors confused, but now I just remember that a profunctor goes both ways.
2021-09-06 22:55:44 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-09-06 22:55:52 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2021-09-06 22:56:51 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 22:57:55 +0200Guest|40(~Guest|40@134.173.92.8)
2021-09-06 22:58:21 +0200Lord_of_Life_Lord_of_Life
2021-09-06 22:58:48 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-09-06 22:59:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-06 23:00:38 +0200desantra(~skykanin@user/skykanin)
2021-09-06 23:06:18 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2021-09-06 23:09:21 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 23:14:20 +0200shapr(~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 250 seconds)
2021-09-06 23:15:33 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 23:16:47 +0200qbt(~edun@user/edun) (Ping timeout: 245 seconds)
2021-09-06 23:17:17 +0200aarvar(~aaron@2601:602:a080:fa0:c490:e73a:21d7:a4e7)
2021-09-06 23:18:39 +0200mikoto-chan(~mikoto-ch@83.137.2.251)
2021-09-06 23:20:39 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de)
2021-09-06 23:20:41 +0200ArctVaulMarsHMPJ(~pjetcetal@128-71-152-79.broadband.corbina.ru) (Ping timeout: 252 seconds)
2021-09-06 23:25:10 +0200hannessteffenhag(~hannesste@ip4d14ffd8.dynamic.kabel-deutschland.de) (Ping timeout: 250 seconds)
2021-09-06 23:25:38 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Read error: Connection reset by peer)
2021-09-06 23:26:08 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-09-06 23:26:25 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 23:27:13 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-06 23:28:00 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 23:28:15 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-06 23:28:35 +0200ulvarrefr(~user@185.24.53.152) (Read error: Connection reset by peer)
2021-09-06 23:29:03 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 23:29:36 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net)
2021-09-06 23:29:36 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Changing host)
2021-09-06 23:29:36 +0200wroathe(~wroathe@user/wroathe)
2021-09-06 23:29:41 +0200Guest|40(~Guest|40@134.173.92.8) (Quit: Connection closed)
2021-09-06 23:32:38 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 23:33:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-09-06 23:33:30 +0200poljar(~poljar@78-3-12-111.adsl.net.t-com.hr)
2021-09-06 23:33:31 +0200jtomas_(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Quit: Leaving)
2021-09-06 23:33:48 +0200jtomas(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-09-06 23:34:59 +0200APic(apic@apic.name) (Read error: Connection reset by peer)
2021-09-06 23:35:08 +0200poljar1(~poljar@78-3-12-111.adsl.net.t-com.hr) (Ping timeout: 250 seconds)
2021-09-06 23:35:34 +0200APic(apic@apic.name)
2021-09-06 23:36:40 +0200oldleather(~oldleathe@172.58.168.27)
2021-09-06 23:37:18 +0200oldleather(~oldleathe@172.58.168.27) ()
2021-09-06 23:41:18 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 23:42:07 +0200 <zzz> maerwald: the thing is curl seems to be working fine for me
2021-09-06 23:44:02 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-09-06 23:44:29 +0200 <maerwald> zzz: what curl version
2021-09-06 23:44:30 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 23:45:40 +0200 <zzz> maerwald: curl 7.58.0 (i686-pc-linux-gnu)
2021-09-06 23:45:45 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443)
2021-09-06 23:46:15 +0200desantra(~skykanin@user/skykanin) (Quit: WeeChat 3.2)
2021-09-06 23:46:29 +0200 <maerwald> zzz: https://paste.tomsmeding.com/JUdzeBxK does this work
2021-09-06 23:48:24 +0200 <zzz> yes
2021-09-06 23:48:57 +0200mikoto-chan(~mikoto-ch@83.137.2.251) (Quit: mikoto-chan)
2021-09-06 23:49:14 +0200mikoto-chan(~mikoto-ch@83.137.2.251)
2021-09-06 23:49:49 +0200 <zzz> dsal: oh no
2021-09-06 23:49:58 +0200w-spc-gir(~w-spc-gir@2601:646:9c00:594c:3481:94b7:65bc:2443) (Read error: Connection reset by peer)
2021-09-06 23:50:28 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com) (Quit: amitnjha)
2021-09-06 23:50:41 +0200amitnjha(~amit@024-216-124-116.res.spectrum.com)
2021-09-06 23:51:02 +0200Pickchea(~private@user/pickchea)
2021-09-06 23:54:34 +0200dsrt^(~dsrt@68.101.54.227) (Ping timeout: 240 seconds)
2021-09-06 23:55:34 +0200 <maerwald> zzz: well, then I don't know what's not working there
2021-09-06 23:59:50 +0200 <zzz> thanks for the help anyways, it's solved