2022/05/06

2022-05-06 00:01:33 +0200 <seydar> ugh i hate this
2022-05-06 00:01:42 +0200 <seydar> all these bugs are derived from ROUNDING ERRORS
2022-05-06 00:01:50 +0200 <seydar> adding all these doubles!
2022-05-06 00:03:00 +0200kimjetwav(~user@2607:fea8:2362:b400:e8cd:c90e:aafe:7f5b) (Remote host closed the connection)
2022-05-06 00:05:33 +0200 <apache2> can I get show to output whitespace/indentation?
2022-05-06 00:10:49 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-06 00:11:53 +0200 <geekosaur> @hackage pretty-show
2022-05-06 00:11:54 +0200 <lambdabot> https://hackage.haskell.org/package/pretty-show
2022-05-06 00:11:56 +0200 <geekosaur> maybe
2022-05-06 00:11:59 +0200 <geekosaur> show itself, no
2022-05-06 00:14:29 +0200fendor(~fendor@91.141.58.225.wireless.dyn.drei.com) (Remote host closed the connection)
2022-05-06 00:14:51 +0200 <monochrom> `show (Just 4)` will give you a space but no indentation.
2022-05-06 00:18:14 +0200 <EvanR> haskell doesn't force you to write top down
2022-05-06 00:18:25 +0200 <EvanR> > let ppɐ = (+) in ppɐ 2 2
2022-05-06 00:18:27 +0200 <lambdabot> 4
2022-05-06 00:18:30 +0200 <monochrom> Yeah, that.
2022-05-06 00:18:44 +0200 <apache2> thanks geekosaur I'll try that
2022-05-06 00:19:00 +0200zeenk(~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d) (Quit: Konversation terminated!)
2022-05-06 00:19:13 +0200liz_(~liz@host109-151-128-120.range109-151.btcentralplus.com) (Quit: Lost terminal)
2022-05-06 00:22:02 +0200Tuplanolla(~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) (Quit: Leaving.)
2022-05-06 00:27:43 +0200Guest|99(~Guest|99@217-121-250-5.cable.dynamic.v4.ziggo.nl)
2022-05-06 00:27:51 +0200 <seydar> my program has been deviating from the test program because apparently... they are receiving different input
2022-05-06 00:28:33 +0200 <seydar> i need a drink
2022-05-06 00:29:04 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-05-06 00:29:14 +0200 <hpc> there's a liquid haskell joke in there somewhere
2022-05-06 00:29:51 +0200 <monochrom> :)
2022-05-06 00:30:01 +0200 <monochrom> Liquor Haskell
2022-05-06 00:30:55 +0200 <hpc> monochrom: haskell needs dependent types to be a real "proof" assistant
2022-05-06 00:32:19 +0200Guest|99(~Guest|99@217-121-250-5.cable.dynamic.v4.ziggo.nl) ()
2022-05-06 00:32:43 +0200 <monochrom> "Liquor Haskell combines dependent typing, dependent refinement typing, dependent predicate subtyping, and dependent linear typing."
2022-05-06 00:33:10 +0200 <apache2> :)
2022-05-06 00:33:21 +0200 <monochrom> "Computer science has just become a bit too technical. Let's go for a drink." -- Jay Misra
2022-05-06 00:33:22 +0200 <maerwald[m]> Since when is Haskell trying to become a proof assistant?
2022-05-06 00:33:42 +0200 <apache2> since it became alcoholic?
2022-05-06 00:33:56 +0200 <maerwald[m]> That sounds right
2022-05-06 00:33:59 +0200 <maerwald[m]> Cheers
2022-05-06 00:34:28 +0200 <monochrom> No no no, not proof assistant. 100-proof assistant.
2022-05-06 00:34:29 +0200 <apache2> isn't that a big pun on liquor/dependent (addicted)/proof(as in strong alcohol) etc?
2022-05-06 00:34:46 +0200 <hpc> yep
2022-05-06 00:34:50 +0200jargon(~jargon@174-22-206-112.phnx.qwest.net)
2022-05-06 00:34:59 +0200 <hpc> these aren't your usual internet puns
2022-05-06 00:35:06 +0200 <hpc> these are {-# LANGUAGE RecordPuns #-}
2022-05-06 00:35:29 +0200 <hpc> i mean, NamedFieldPuns
2022-05-06 00:35:52 +0200 <maerwald[m]> Isn't that just syntax cocaine?
2022-05-06 00:36:33 +0200 <monochrom> desugared grape juice
2022-05-06 00:37:08 +0200 <hpc> maerwald[m]: haskell is inspired by methamatics? :P
2022-05-06 00:37:11 +0200 <monochrom> and desugared malt etc
2022-05-06 00:38:03 +0200 <monochrom> In reality, you cannot do equational reasoning. In meth, you can.
2022-05-06 00:39:03 +0200 <hpc> meth: not even epsilon
2022-05-06 00:40:57 +0200Polo(~Polo@user/polo) (Quit: Textual IRC Client: www.textualapp.com)
2022-05-06 00:44:34 +0200teo(~teo@user/teo) ()
2022-05-06 00:51:00 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 276 seconds)
2022-05-06 00:54:03 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2022-05-06 00:57:04 +0200hololeap_(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-05-06 01:00:17 +0200hololeap_(~hololeap@user/hololeap)
2022-05-06 01:00:20 +0200xaotuk(~sasha@net224-32-245-109.mbb.telenor.rs) (Ping timeout: 260 seconds)
2022-05-06 01:00:52 +0200acidjnk(~acidjnk@p200300d0c7068b43f1a15e75027d04fd.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-05-06 01:01:10 +0200stackdroid18(14094@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-05-06 01:07:05 +0200eraziel(~eraziel@modemcable169.17-58-74.mc.videotron.ca) (Quit: Client closed)
2022-05-06 01:08:35 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-05-06 01:10:04 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds)
2022-05-06 01:10:04 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-05-06 01:10:39 +0200malinoskj290645(~malinoskj@c-68-33-26-115.hsd1.md.comcast.net)
2022-05-06 01:11:34 +0200malinoskj290645(~malinoskj@c-68-33-26-115.hsd1.md.comcast.net) (Client Quit)
2022-05-06 01:11:40 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
2022-05-06 01:11:54 +0200chomwitt(~chomwitt@2a02:587:dc19:d600:6d5a:79e9:ac14:c3a8) (Ping timeout: 252 seconds)
2022-05-06 01:11:55 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-05-06 01:11:57 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-05-06 01:12:53 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-05-06 01:14:45 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-06 01:20:16 +0200 <seydar> WOW i had another list comprehension that failed to grok inner- vs outer-loop variables
2022-05-06 01:20:20 +0200 <seydar> so... my bad
2022-05-06 01:32:36 +0200lagooned(~lagooned@108-208-149-42.lightspeed.hstntx.sbcglobal.net)
2022-05-06 01:34:46 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-06 01:41:03 +0200alp_(~alp@user/alp) (Ping timeout: 252 seconds)
2022-05-06 01:43:17 +0200vicfred(~vicfred@user/vicfred)
2022-05-06 01:47:59 +0200 <seydar> this project is showing me just how poorly i know haskell and just how poorly i can read
2022-05-06 01:49:56 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 248 seconds)
2022-05-06 01:54:05 +0200 <seydar> i'm having (Integral Double) troubles again: https://paste.tomsmeding.com/TgdvpoGl
2022-05-06 01:54:22 +0200 <seydar> what does it mean when it says "no instance of (Integral Double)"?
2022-05-06 01:55:47 +0200 <seydar> ah. as soon as I removed the `::Double` and the `round`, my problem went away
2022-05-06 01:55:54 +0200 <seydar> which leads me to believe that:
2022-05-06 01:55:56 +0200 <seydar> :t floor
2022-05-06 01:55:57 +0200 <lambdabot> (RealFrac a, Integral b) => a -> b
2022-05-06 01:56:20 +0200 <seydar> okay that doesn't mean much to me, but it feels like `floor` is already making it an Int
2022-05-06 01:57:58 +0200 <monochrom> But what does "limit 0 18" expect?
2022-05-06 01:59:37 +0200jao(~jao@211.68.17.95.dynamic.jazztel.es) (Remote host closed the connection)
2022-05-06 02:01:31 +0200 <seydar> please don't be mad... but i couldn't come up with a type signature to work, so i got rid of the signature and just let the compiler figure it out for me
2022-05-06 02:01:32 +0200 <EvanR> no instance of Integral Double means Double has no Integral instance, which maps to "you can't do long division with Double"
2022-05-06 02:01:57 +0200 <EvanR> "unless you implement the instance yourself"
2022-05-06 02:02:02 +0200 <monochrom> Then what is the type sig the compiler figured out?
2022-05-06 02:02:29 +0200 <monochrom> I am mad but I don't have remote desktop access.
2022-05-06 02:03:48 +0200 <EvanR> best to double check the compiler arrived at the same conclusion as you-at-your-best
2022-05-06 02:06:39 +0200 <sm> seydar: again, excellent haskell dev technique, no problem with that!
2022-05-06 02:06:43 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-06 02:07:00 +0200 <sm> vs code will insert that for you if you like
2022-05-06 02:07:19 +0200 <EvanR> oh man, I should learn vs code
2022-05-06 02:08:20 +0200 <seydar> limit :: Ord a => a -> a -> a -> a
2022-05-06 02:08:33 +0200 <seydar> (limit low high value -> result)
2022-05-06 02:09:06 +0200 <EvanR> so basically a clamp
2022-05-06 02:10:10 +0200 <monochrom> So you are saying "limit 0 18 (floor foo) :: Double". Therefore a=Double. Therefore floor foo :: Double. Therefore you are asking floor to return Double not Int.
2022-05-06 02:10:49 +0200 <EvanR> floor is funny in that it can't turn a Double into a Double :(
2022-05-06 02:10:53 +0200 <EvanR> unlike math.h
2022-05-06 02:12:48 +0200 <monochrom> C's floor probably is designed to just map to a machine instruction, and most machine's floor instruction is probably double->double, and C does not aspire to think about it.
2022-05-06 02:13:50 +0200 <monochrom> Although, both ways are inconvenient half of the time.
2022-05-06 02:14:43 +0200 <dons> morning all. happy friday
2022-05-06 02:14:54 +0200 <monochrom> double->int has the up side of using types to tell you "no fractional part". double->double has the up side of using types to tell you "the answer always fits in the range".
2022-05-06 02:16:23 +0200 <monochrom> However, in Haskell, you're supposed to do Double->Integer therefore there is no out-of-range UB problem.
2022-05-06 02:17:06 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2022-05-06 02:17:17 +0200 <EvanR> but my premature optimizations
2022-05-06 02:18:15 +0200 <EvanR> when you really do want Double->Double, premature or not, it's annoying
2022-05-06 02:18:32 +0200 <monochrom> This is why we need dependent predicate subtyping of Liquor Haskell to prove that your output fits in 4 bits therefore you are allowed Double-Nibble.
2022-05-06 02:18:51 +0200 <monochrom> And dependent linear typing to prove that destructive update is OK too.
2022-05-06 02:19:42 +0200mmhat(~mmh@2001:4090:a246:806c:ee08:6bff:fe09:5315) (Quit: WeeChat 3.5)
2022-05-06 02:19:47 +0200xff0x(~xff0x@om126167084162.29.openmobile.ne.jp)
2022-05-06 02:19:57 +0200 <monochrom> We are doing EGA 16-colour image processing, therefore 4 bits are enough, right? >:)
2022-05-06 02:20:38 +0200 <EvanR> 4 bit color palettes can be pretty cool
2022-05-06 02:25:33 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-05-06 02:26:11 +0200kaipei(~Kaiepi@156.34.47.253)
2022-05-06 02:28:59 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-05-06 02:29:28 +0200 <dmj`> Liquor Haskell ? go on.
2022-05-06 02:29:48 +0200kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 276 seconds)
2022-05-06 02:30:17 +0200 <monochrom> It's a 100-proof assistant >:)
2022-05-06 02:30:45 +0200 <monochrom> <monochrom> "Liquor Haskell combines dependent typing, dependent refinement typing, dependent predicate subtyping, and dependent linear typing."
2022-05-06 02:31:03 +0200 <monochrom> I forgot "dependent effect typing" there.
2022-05-06 02:31:30 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-06 02:32:08 +0200 <monochrom> Start with https://ircbrowse.tomsmeding.com/browse/lchaskell?id=540506#trid540506 for the whole conversation :)
2022-05-06 02:34:12 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 248 seconds)
2022-05-06 02:34:14 +0200 <seydar> https://paste.tomsmeding.com/yKQNirHg
2022-05-06 02:34:42 +0200 <seydar> I'm getting NaN when r, g, b are small values
2022-05-06 02:34:48 +0200 <seydar> is there a better way to phrase this function?
2022-05-06 02:35:13 +0200 <monochrom> If NaN, check that you are not doing sqrt (-0.001) for example.
2022-05-06 02:35:21 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-05-06 02:35:31 +0200 <monochrom> I phrased it wrong.
2022-05-06 02:35:32 +0200 <seydar> i 10000% most definitely am
2022-05-06 02:35:48 +0200 <seydar> some tiktok influencer told me to do it
2022-05-06 02:36:00 +0200 <monochrom> Clearly sqrt (-0.0001) is the sole source of NaN. OK, either that, or it's sqrt NaN in the first place.
2022-05-06 02:36:51 +0200 <seydar> this would explain why the C code does like copysignf(pow(fabsf(...
2022-05-06 02:39:20 +0200 <monochrom> I actually had experience debugging black pixels that turned out to be caused by acos(sqrt( dot product that came out as -0.001 because floating point)) and then some C compiler on some platform decided that "x = (int)NaN;" meant "x = 0;" or something.
2022-05-06 02:39:54 +0200 <seydar> HOLY SHIT i did it
2022-05-06 02:40:01 +0200 <seydar> this has been a team effort
2022-05-06 02:40:10 +0200 <seydar> thank you all for helping me grow into a better programmer and haskeller
2022-05-06 02:46:15 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-05-06 02:46:15 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-05-06 02:46:15 +0200wroathe(~wroathe@user/wroathe)
2022-05-06 02:47:56 +0200 <seydar> I humbly submit my code for review: https://paste.tomsmeding.com/ElLdaMKb
2022-05-06 02:50:35 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
2022-05-06 02:54:10 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-06 02:57:15 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Remote host closed the connection)
2022-05-06 02:57:30 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-06 03:13:43 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net)
2022-05-06 03:18:14 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
2022-05-06 03:22:58 +0200x_kuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2022-05-06 03:29:48 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Quit: leaving)
2022-05-06 03:35:30 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2022-05-06 03:37:06 +0200frost(~frost@user/frost)
2022-05-06 03:37:28 +0200andrey__(~andrey@p200300dbcf09f8009147dcedbd430909.dip0.t-ipconnect.de)
2022-05-06 03:40:13 +0200andrey_(~andrey@p200300dbcf1053000b1abd83a6152638.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-05-06 03:44:43 +0200 <sm> who has read Haskell from the Very Beginning, https://www.amazon.com/dp/095767113X ? it looks good
2022-05-06 03:49:55 +0200 <sm> "For Whitington to both mention and omit monads is quite irresponsible. He has written what I'd consider the standard (but incomplete) introduction to Haskell for non-programmers, but at the same time, he's condemned his readers to monad obsessions as he's taken readers all the way to the gate, told them they exist, and abandoned them there.
2022-05-06 03:49:55 +0200 <sm> Despite the above flaws, this is a very good book."
2022-05-06 03:49:56 +0200kaskal(~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8) (Quit: ZNC - https://znc.in)
2022-05-06 03:50:11 +0200kaskal(~kaskal@089144207160.atnat0016.highway.bob.at)
2022-05-06 03:50:14 +0200fluxit(~fluxit@techsmix.net) (Quit: Bye!)
2022-05-06 03:52:18 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-05-06 04:02:00 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 250 seconds)
2022-05-06 04:04:37 +0200wroathe(~wroathe@user/wroathe) (Read error: Connection reset by peer)
2022-05-06 04:04:52 +0200jao(~jao@211.68.17.95.dynamic.jazztel.es)
2022-05-06 04:07:03 +0200michalz(~michalz@185.246.204.101) (Ping timeout: 260 seconds)
2022-05-06 04:11:25 +0200gpncarl(~gpncarl@222.249.231.5)
2022-05-06 04:14:33 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-05-06 04:14:33 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-05-06 04:14:33 +0200finn_elijaFinnElija
2022-05-06 04:16:25 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds)
2022-05-06 04:20:23 +0200zaquest(~notzaques@5.130.79.72)
2022-05-06 04:26:53 +0200 <monochrom> Sounds like the recent Dune movie. >:)
2022-05-06 04:29:40 +0200 <monochrom> "Villeneuve has taken viewers all the way to the gate of the Fremen community, told them they exist, and abandoned them there." >:)
2022-05-06 04:43:58 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-05-06 04:45:12 +0200terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-05-06 04:46:27 +0200Guest4318(~Polo@user/polo)
2022-05-06 04:48:36 +0200jespada(~jespada@146.70.119.114)
2022-05-06 04:50:45 +0200jespada_(~jespada@185.195.232.138) (Ping timeout: 260 seconds)
2022-05-06 04:54:47 +0200td_(~td@muedsl-82-207-238-115.citykom.de) (Ping timeout: 256 seconds)
2022-05-06 04:56:39 +0200td_(~td@94.134.91.66)
2022-05-06 04:56:50 +0200Guest4318yous
2022-05-06 04:57:28 +0200 <sm> very true :)
2022-05-06 04:58:20 +0200 <sm> @where books
2022-05-06 04:58:20 +0200 <lambdabot> https://www.extrema.is/articles/haskell-books http://www.vex.net/~trebla/haskell/learn-sources.html, see also @where LYAH, RWH, YAHT, SOE, HR, PIH, TFwH, wikibook, PCPH, HPFFP, HTAC, TwT, FoP, PFAD,
2022-05-06 04:58:20 +0200 <lambdabot> WYAH, non-haskell-books
2022-05-06 04:59:28 +0200 <sm> @where LYAH
2022-05-06 04:59:28 +0200 <lambdabot> http://www.learnyouahaskell.com/
2022-05-06 04:59:28 +0200xff0x(~xff0x@om126167084162.29.openmobile.ne.jp) (Read error: Connection reset by peer)
2022-05-06 04:59:53 +0200 <sm> @where+ HFTVB https://www.extrema.is/articles/haskell-books/haskell-from-the-very-beginning
2022-05-06 04:59:53 +0200 <lambdabot> Okay.
2022-05-06 05:01:00 +0200 <sm> @where+ books https://www.extrema.is/articles/haskell-books http://www.vex.net/~trebla/haskell/learn-sources.html, see also @where LYAH, RWH, YAHT, HFTVB, SOE, HR, PIH, TFwH, wikibook, PCPH, HPFFP, HTAC, TwT, FoP, PFAD, WYAH, non-haskell-books
2022-05-06 05:01:01 +0200 <lambdabot> Done.
2022-05-06 05:10:28 +0200yous(~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-06 05:20:19 +0200arjun(~arjun@user/arjun)
2022-05-06 05:24:25 +0200xff0x(~xff0x@om126167084162.29.openmobile.ne.jp)
2022-05-06 05:30:01 +0200xff0x(~xff0x@om126167084162.29.openmobile.ne.jp) (Ping timeout: 256 seconds)
2022-05-06 05:40:36 +0200Guest8867(~Polo@user/polo)
2022-05-06 05:50:58 +0200Guest8867Polo
2022-05-06 05:52:42 +0200Ram-Z_(~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 246 seconds)
2022-05-06 05:54:19 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-05-06 05:56:37 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2022-05-06 05:56:44 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Client Quit)
2022-05-06 06:12:36 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
2022-05-06 06:14:45 +0200jao(~jao@211.68.17.95.dynamic.jazztel.es) (Ping timeout: 246 seconds)
2022-05-06 06:18:55 +0200notzmv(~zmv@user/notzmv)
2022-05-06 06:19:18 +0200raym(~raym@user/raym) (Quit: rebooting...)
2022-05-06 06:23:23 +0200raym(~raym@user/raym)
2022-05-06 06:24:47 +0200Polo(~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-06 06:27:45 +0200kaipei(~Kaiepi@156.34.47.253) (Quit: Leaving)
2022-05-06 06:28:12 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-06 06:28:26 +0200Polo(~Polo@user/polo)
2022-05-06 06:29:09 +0200coot(~coot@213.134.190.95)
2022-05-06 06:29:25 +0200asivitz(uid178348@id-178348.tinside.irccloud.com)
2022-05-06 06:37:02 +0200bahamas(~lucian@84.232.141.55)
2022-05-06 06:37:13 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net)
2022-05-06 06:42:23 +0200mvk(~mvk@2607:fea8:5ce3:8500::aa1d)
2022-05-06 06:46:02 +0200Polo(~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-06 06:50:08 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-06 06:54:01 +0200Vajb(~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56)
2022-05-06 07:01:56 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-05-06 07:11:50 +0200mbuf(~Shakthi@223.184.62.182)
2022-05-06 07:14:15 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 260 seconds)
2022-05-06 07:19:32 +0200chomwitt(~chomwitt@2a02:587:dc19:d600:8f70:f0f3:1c35:cd8a)
2022-05-06 07:21:03 +0200Polo(~Polo@user/polo)
2022-05-06 07:22:46 +0200 <juhp[m]> geekosaur: https://paste.tomsmeding.com/zhha2cRX is a minimal example of "error: (if ... then ... else ...)-syntax in pattern"
2022-05-06 07:23:11 +0200searemind(~searemind@122.161.49.191)
2022-05-06 07:23:23 +0200searemind(~searemind@122.161.49.191) (Remote host closed the connection)
2022-05-06 07:27:04 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds)
2022-05-06 07:27:37 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-05-06 07:30:35 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2022-05-06 07:30:57 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com)
2022-05-06 07:31:15 +0200zyklotomic(~ethan@res388d-128-61-89-205.res.gatech.edu) (Ping timeout: 260 seconds)
2022-05-06 07:32:58 +0200zyklotomic(~ethan@res380d-128-61-86-102.res.gatech.edu)
2022-05-06 07:33:33 +0200Polo(~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-06 07:35:38 +0200Polo(~Polo@user/polo)
2022-05-06 07:36:55 +0200jargon(~jargon@174-22-206-112.phnx.qwest.net) (Remote host closed the connection)
2022-05-06 07:37:03 +0200Polo(~Polo@user/polo) (Client Quit)
2022-05-06 07:39:15 +0200Polo(~Polo@user/polo)
2022-05-06 07:40:14 +0200michalz(~michalz@185.246.204.101)
2022-05-06 07:47:28 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net)
2022-05-06 07:51:04 +0200Polo(~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-06 08:00:23 +0200agumonkey(~user@88.163.231.79)
2022-05-06 08:00:35 +0200Polo(~Polo@user/polo)
2022-05-06 08:06:20 +0200odnes(~odnes@5-203-246-15.pat.nym.cosmote.net)
2022-05-06 08:08:59 +0200phma(~phma@2001:5b0:211f:67e8:28ee:b8ea:db61:4883) (Read error: Connection reset by peer)
2022-05-06 08:10:04 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds)
2022-05-06 08:10:15 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-05-06 08:12:26 +0200phma(~phma@231.sub-174-212-167.myvzw.com)
2022-05-06 08:12:52 +0200mvk(~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 248 seconds)
2022-05-06 08:16:17 +0200echoreply(~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
2022-05-06 08:17:35 +0200echoreply(~echoreply@45.32.163.16)
2022-05-06 08:18:51 +0200Maxdamantus(~Maxdamant@user/maxdamantus) (Ping timeout: 276 seconds)
2022-05-06 08:19:04 +0200Batzy_Batzy
2022-05-06 08:24:26 +0200mikoto-chan(~mikoto-ch@84.199.144.234)
2022-05-06 08:24:51 +0200alp_(~alp@user/alp)
2022-05-06 08:25:35 +0200renzhi(~xp@2607:fa49:6500:b100::78de) (Ping timeout: 256 seconds)
2022-05-06 08:30:07 +0200Maxdamantus(~Maxdamant@user/maxdamantus)
2022-05-06 08:31:32 +0200bahamas(~lucian@84.232.141.55)
2022-05-06 08:34:57 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:f12b:6d29:e790:1b4f)
2022-05-06 08:35:25 +0200Polo(~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-06 08:37:20 +0200renzhi(~xp@2607:fa49:6500:b100::3c88)
2022-05-06 08:39:36 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-06 08:39:59 +0200Polo(~Polo@user/polo)
2022-05-06 08:44:48 +0200dextaa4(~dextaa@user/dextaa)
2022-05-06 08:47:11 +0200dextaa4(~dextaa@user/dextaa) (Remote host closed the connection)
2022-05-06 08:49:00 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 240 seconds)
2022-05-06 08:49:22 +0200dextaa4(~dextaa@user/dextaa)
2022-05-06 08:51:16 +0200Polo(~Polo@user/polo) (Killed (osmium.libera.chat (Nickname regained by services)))
2022-05-06 08:51:23 +0200Polo(~Polo@user/polo)
2022-05-06 08:51:48 +0200xaotuk(~sasha@net9-32-245-109.mbb.telenor.rs)
2022-05-06 08:51:55 +0200acidjnk(~acidjnk@p200300d0c7068b349c270144d8822819.dip0.t-ipconnect.de)
2022-05-06 08:53:29 +0200jamestmartin(~james@jtmar.me) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
2022-05-06 08:53:38 +0200jamestmartin(~james@jtmar.me)
2022-05-06 08:54:52 +0200fendor(~fendor@91.141.58.111.wireless.dyn.drei.com)
2022-05-06 09:02:10 +0200gehmehgeh(~user@user/gehmehgeh)
2022-05-06 09:02:11 +0200phma(~phma@231.sub-174-212-167.myvzw.com) (Read error: Connection reset by peer)
2022-05-06 09:05:05 +0200phma(phma@2001:5b0:211c:bd68:1a30:3d9:b27f:d715)
2022-05-06 09:06:12 +0200Polo(~Polo@user/polo) (Ping timeout: 248 seconds)
2022-05-06 09:09:09 +0200Polo(~Polo@user/polo)
2022-05-06 09:09:30 +0200dostoevsky(~5c42c5384@user/dostoevsky)
2022-05-06 09:14:48 +0200chele(~chele@user/chele)
2022-05-06 09:15:32 +0200 <Athas> I could swear that cabal is faster at building than stack.
2022-05-06 09:16:27 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 240 seconds)
2022-05-06 09:16:30 +0200chele(~chele@user/chele) (Remote host closed the connection)
2022-05-06 09:16:47 +0200chele(~chele@user/chele)
2022-05-06 09:16:51 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-05-06 09:17:48 +0200agumonkey(~user@88.163.231.79) (Ping timeout: 246 seconds)
2022-05-06 09:23:21 +0200Polo(~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-06 09:26:00 +0200Polo(~Polo@user/polo)
2022-05-06 09:27:07 +0200ccntrq(~Thunderbi@2a01:e34:eccb:b060:8a52:6111:fb65:b9eb) (Remote host closed the connection)
2022-05-06 09:29:47 +0200ccntrq(~Thunderbi@2a01:e34:eccb:b060:76e8:584c:bd55:70ba)
2022-05-06 09:30:28 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-06 09:34:08 +0200 <maerwald[m]> Athas: I don't think so
2022-05-06 09:34:37 +0200 <maerwald[m]> cabal repl, cabal run etc are all slower
2022-05-06 09:35:14 +0200 <maerwald[m]> Cabal frequently attempts rebuilds although there's nothing to rebuild and then wastes a lot of time
2022-05-06 09:35:19 +0200Ether17(~Ether17@45.248.151.237)
2022-05-06 09:35:41 +0200 <Athas> But I think it does less poking around before starting work.
2022-05-06 09:35:44 +0200 <Athas> The latency is much lower.
2022-05-06 09:36:02 +0200 <maerwald[m]> Possible, might depend on your stack config
2022-05-06 09:36:07 +0200Ether17(~Ether17@45.248.151.237) (Client Quit)
2022-05-06 09:36:24 +0200 <maerwald[m]> Stack does shenanigans with sqlite DBs and GHC installation before it starts
2022-05-06 09:36:38 +0200 <Athas> Yes, I suspect that is the reason.
2022-05-06 09:38:20 +0200 <maerwald[m]> Try `system-ghc: true`
2022-05-06 09:38:27 +0200 <Athas> No need, I use cabal now.
2022-05-06 09:45:08 +0200xaotuk(~sasha@net9-32-245-109.mbb.telenor.rs) (Ping timeout: 248 seconds)
2022-05-06 09:46:01 +0200fendor(~fendor@91.141.58.111.wireless.dyn.drei.com) (Remote host closed the connection)
2022-05-06 09:46:14 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-05-06 09:46:36 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 276 seconds)
2022-05-06 09:47:03 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-05-06 09:48:15 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-06 09:51:51 +0200shriekingnoise(~shrieking@201.231.16.156) (Quit: Quit)
2022-05-06 09:52:51 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-05-06 09:54:30 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-05-06 09:54:35 +0200hsw(~hsw@112-104-144-236.adsl.dynamic.seed.net.tw) (Quit: Leaving)
2022-05-06 09:57:17 +0200machinedgod(~machinedg@24.105.81.50) (Remote host closed the connection)
2022-05-06 09:58:22 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-06 10:01:02 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-06 10:01:32 +0200dextaa4(~dextaa@user/dextaa) (Remote host closed the connection)
2022-05-06 10:05:22 +0200dextaa4(~dextaa@user/dextaa)
2022-05-06 10:08:54 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-06 10:11:59 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net)
2022-05-06 10:13:47 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-05-06 10:18:27 +0200vpan(~0@212.117.1.172)
2022-05-06 10:18:27 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Ping timeout: 276 seconds)
2022-05-06 10:22:19 +0200xff0x(~xff0x@om126253182187.31.openmobile.ne.jp)
2022-05-06 10:29:42 +0200kritzefitz(~kritzefit@debian/kritzefitz) (Remote host closed the connection)
2022-05-06 10:30:42 +0200kritzefitz(~kritzefit@debian/kritzefitz)
2022-05-06 10:39:00 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-06 10:39:35 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-05-06 10:45:07 +0200__monty__(~toonn@user/toonn)
2022-05-06 10:47:40 +0200bahamas(~lucian@84.232.141.55)
2022-05-06 10:48:15 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-05-06 10:48:30 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-06 10:48:47 +0200img(~img@user/img)
2022-05-06 10:50:44 +0200xff0x(~xff0x@om126253182187.31.openmobile.ne.jp) (Ping timeout: 248 seconds)
2022-05-06 10:54:04 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-05-06 11:00:09 +0200marinelli[m](~marinelli@2001:470:69fc:105::2d8) (Quit: You have been kicked for being idle)
2022-05-06 11:08:41 +0200dextaa4(~dextaa@user/dextaa) (Quit: Ping timeout (120 seconds))
2022-05-06 11:08:52 +0200dextaa4(~dextaa@user/dextaa)
2022-05-06 11:09:24 +0200zyklotomic(~ethan@res380d-128-61-86-102.res.gatech.edu) (Ping timeout: 248 seconds)
2022-05-06 11:11:17 +0200zyklotomic(~ethan@res380d-128-61-83-67.res.gatech.edu)
2022-05-06 11:13:00 +0200odnes(~odnes@5-203-246-15.pat.nym.cosmote.net) (Remote host closed the connection)
2022-05-06 11:13:20 +0200odnes(~odnes@5-203-246-15.pat.nym.cosmote.net)
2022-05-06 11:16:38 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-06 11:16:58 +0200mikoto-chan(~mikoto-ch@84.199.144.234) (Ping timeout: 260 seconds)
2022-05-06 11:17:33 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-05-06 11:22:02 +0200cdman(~dcm@user/dmc/x-4369397)
2022-05-06 11:24:44 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2022-05-06 11:24:51 +0200caubert(~caubert@136.244.111.235) (Ping timeout: 246 seconds)
2022-05-06 11:25:12 +0200caubert(~caubert@136.244.111.235)
2022-05-06 11:25:16 +0200PoloGuest6109
2022-05-06 11:25:16 +0200Guest6109(~Polo@user/polo) (Killed (zinc.libera.chat (Nickname regained by services)))
2022-05-06 11:25:22 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan)
2022-05-06 11:25:27 +0200Polo(~Polo@user/polo)
2022-05-06 11:26:53 +0200odnes(~odnes@5-203-246-15.pat.nym.cosmote.net) (Ping timeout: 260 seconds)
2022-05-06 11:26:54 +0200Polo(~Polo@user/polo) (Client Quit)
2022-05-06 11:27:25 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 260 seconds)
2022-05-06 11:28:03 +0200 <Las[m]> Given `type family Const a b where Const a b = a`, is there a better way to write `type B (y :: Const Type x) = A x y`?
2022-05-06 11:28:34 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds)
2022-05-06 11:29:14 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-05-06 11:29:43 +0200Hash(~Hash@hey.howstoned.ru) (Read error: Connection reset by peer)
2022-05-06 11:29:44 +0200 <Las[m]> Essentially I want something similar to the following Idris code: `B : {x : X} -> Y -> Type ; B {x} y = A x y`
2022-05-06 11:30:09 +0200coot_(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-05-06 11:30:18 +0200Hash(~Hash@hey.howstoned.ru)
2022-05-06 11:31:04 +0200 <[exa]> Las[m]: naively I'd guess that B should be a type family
2022-05-06 11:31:57 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net)
2022-05-06 11:32:08 +0200mc47(~mc47@xmonad/TheMC47)
2022-05-06 11:32:56 +0200coot_(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Client Quit)
2022-05-06 11:33:16 +0200coot_(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-05-06 11:33:56 +0200coot(~coot@213.134.190.95) (Ping timeout: 248 seconds)
2022-05-06 11:35:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-06 11:35:38 +0200coot_(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Read error: Connection reset by peer)
2022-05-06 11:35:52 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-05-06 11:36:34 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
2022-05-06 11:36:56 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 248 seconds)
2022-05-06 11:39:08 +0200 <lortabac> how can I get the cabal.project.freeze corresponding to a given stackage snapshot?
2022-05-06 11:39:22 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-06 11:39:24 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-06 11:39:25 +0200 <Franciman> ping fgaz
2022-05-06 11:39:43 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-06 11:40:55 +0200 <maerwald> lortabac: stack2cabal
2022-05-06 11:41:05 +0200 <maerwald> https://hackage.haskell.org/package/stack2cabal
2022-05-06 11:41:09 +0200 <Franciman> messieur lortabac cette connexion https://github.com/fpco/stackage-server/issues/232 peut vous aider
2022-05-06 11:41:14 +0200Kaiepi(~Kaiepi@156.34.47.253) (Quit: Leaving)
2022-05-06 11:42:30 +0200 <lortabac> maerwald: can I use it to create only the .freeze file?
2022-05-06 11:43:02 +0200 <maerwald> lortabac: curl https://www.stackage.org/lts-18.26/cabal.config > cabal.project.freeze
2022-05-06 11:43:20 +0200 <lortabac> maerwald: thanks, that's what I was looking for
2022-05-06 11:44:09 +0200 <maerwald> lortabac: cabal-3.7 has first class support for includes btw
2022-05-06 11:44:11 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-05-06 11:44:21 +0200 <maerwald> https://github.com/haskell/cabal/issues/6528#issuecomment-1092062758
2022-05-06 11:44:46 +0200 <maerwald> you'd just add this to cabal.project: `import: https://www.stackage.org/lts-18.26/cabal.config`
2022-05-06 11:44:55 +0200 <maerwald> cabal prerelease can be enabled via ghcup
2022-05-06 11:45:08 +0200acidjnk(~acidjnk@p200300d0c7068b349c270144d8822819.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2022-05-06 11:45:53 +0200 <maerwald> this won't work well if you're overwriting constraints from stackage snapshot with source-repository-package... only stack2cabal resolves those
2022-05-06 11:46:06 +0200 <maerwald> (I could add a --only-freeze option to it)
2022-05-06 11:46:44 +0200 <lortabac> I want the ability to override specific packages, is it possible with remote imports?
2022-05-06 11:47:09 +0200 <lortabac> I guess --only-freeze would be the best solution
2022-05-06 11:48:38 +0200 <maerwald> https://github.com/hasufell/stack2cabal/blob/6f12cea1bffaa804430317b1d66ce2d60c7b05b2/lib/Stackage…
2022-05-06 11:49:18 +0200 <maerwald> you can just manually delete stuff from the freeze file too
2022-05-06 11:49:24 +0200 <maerwald> I don't know your use case
2022-05-06 11:49:34 +0200 <maerwald> is it automated?
2022-05-06 11:50:08 +0200 <lortabac> no
2022-05-06 11:50:30 +0200 <maerwald> then you can just delete whatever you overwrite from the resolver from the freeze file
2022-05-06 11:51:14 +0200 <lortabac> yes, that was my idea
2022-05-06 11:51:32 +0200 <lortabac> but if the freeze file is remote, can I do it?
2022-05-06 11:51:51 +0200 <lortabac> (or maybe I misunderstood what import means?)
2022-05-06 11:51:57 +0200 <maerwald> nope... that's why duncan suggested a constraint algebra
2022-05-06 11:52:21 +0200 <geekosaur> juhp[m], okay, that's weird. I would expect the first line of the missing-do do to be an error, but I guess it's parsed as a … I forget what. (still working on first coffee)
2022-05-06 11:52:29 +0200 <maerwald> constraints are passed to the solver without any pre-processing, so if you have multiple constraints that can be solved, cabal will just barf out
2022-05-06 11:52:37 +0200 <maerwald> s/can/can't/
2022-05-06 11:53:12 +0200 <maerwald> so importing mulitple freeze files will not overwrite anything, but just make cabal potentially fail
2022-05-06 11:53:38 +0200 <maerwald> it's simple union
2022-05-06 11:53:45 +0200 <lortabac> an algebra would be great indeed
2022-05-06 11:54:05 +0200 <maerwald> lortabac: well, but no one is working on it
2022-05-06 11:54:13 +0200 <lortabac> so the best thing for me at the moment is to download cabal.config
2022-05-06 11:54:26 +0200 <maerwald> yeah, process it like stack2cabal
2022-05-06 11:54:30 +0200 <lortabac> and remove the lines that I want to override
2022-05-06 11:54:58 +0200 <maerwald> wouldn't be hard to write a smaller tool than stack2cabal that just merges two freeze files with your preferred logic
2022-05-06 11:55:19 +0200 <maerwald> because it's yaml, not some esoteric custom format like cabal :p
2022-05-06 11:55:31 +0200 <maerwald> (stackage snapshots, that is)
2022-05-06 11:56:36 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 276 seconds)
2022-05-06 11:57:10 +0200 <Las[m]> [exa]: Unfortunately I couldn't find any way to do it with type families at all, even using the `Const`-trick. With `newtype`s, you can use GADT-syntax to introduce `forall`s.
2022-05-06 11:57:29 +0200 <Las[m]> But with type families, the arity changes if you put the parameters on the right side of the `::`, so I can't define the type family.
2022-05-06 12:01:39 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com)
2022-05-06 12:08:30 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-06 12:12:26 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net)
2022-05-06 12:15:42 +0200xaotuk(~sasha@net200-34-245-109.mbb.telenor.rs)
2022-05-06 12:15:55 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2022-05-06 12:16:56 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Ping timeout: 248 seconds)
2022-05-06 12:17:10 +0200hrdl(~hrdl@mail.hrdl.eu) ()
2022-05-06 12:18:04 +0200chele(~chele@user/chele) (Remote host closed the connection)
2022-05-06 12:20:43 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-06 12:23:24 +0200Midjak(~Midjak@82.66.147.146)
2022-05-06 12:34:49 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-06 12:37:49 +0200mmhat(~mmh@2001:4090:a246:8044:ee08:6bff:fe09:5315)
2022-05-06 12:47:59 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-05-06 12:48:31 +0200ubert(~Thunderbi@p200300ecdf15882975febf22f194fce4.dip0.t-ipconnect.de)
2022-05-06 12:48:33 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2022-05-06 12:48:40 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-05-06 12:49:16 +0200Lord_of_Life_Lord_of_Life
2022-05-06 12:53:45 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-06 13:00:42 +0200cheater(~Username@user/cheater) (Quit: BitchX: the OTHER white meat)
2022-05-06 13:01:22 +0200cheater(~Username@user/cheater)
2022-05-06 13:13:03 +0200xff0x(~xff0x@om126253182187.31.openmobile.ne.jp)
2022-05-06 13:15:02 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net)
2022-05-06 13:15:27 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 246 seconds)
2022-05-06 13:19:41 +0200yauhsien(~yauhsien@61-231-34-25.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-05-06 13:28:54 +0200zyklotomic(~ethan@res380d-128-61-83-67.res.gatech.edu) (Ping timeout: 276 seconds)
2022-05-06 13:30:32 +0200dfip^(~dfip@173-160-94-253-atlanta.hfc.comcastbusiness.net)
2022-05-06 13:30:41 +0200zyklotomic(~ethan@res388d-128-61-94-22.res.gatech.edu)
2022-05-06 13:31:53 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-06 13:32:33 +0200bahamas(~lucian@84.232.141.55)
2022-05-06 13:34:24 +0200alp_(~alp@user/alp) (Ping timeout: 252 seconds)
2022-05-06 13:41:52 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-06 13:44:39 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-05-06 13:46:01 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 248 seconds)
2022-05-06 13:46:12 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-05-06 13:50:58 +0200alp_(~alp@user/alp)
2022-05-06 13:54:55 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-05-06 13:56:29 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-05-06 14:02:13 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-05-06 14:03:04 +0200frost(~frost@user/frost)
2022-05-06 14:04:09 +0200kraftwerk28(~kraftwerk@178.62.210.83) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-06 14:05:10 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-05-06 14:06:47 +0200Ether17(~Ether17@45.248.151.250)
2022-05-06 14:07:39 +0200Ether17(~Ether17@45.248.151.250) (Client Quit)
2022-05-06 14:12:06 +0200dextaa4(~dextaa@user/dextaa) (Remote host closed the connection)
2022-05-06 14:14:15 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 260 seconds)
2022-05-06 14:15:07 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-05-06 14:18:02 +0200frost(~frost@user/frost)
2022-05-06 14:19:05 +0200zeenk(~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d)
2022-05-06 14:21:16 +0200 <dmj`> monochrom: 100 proof assistant (><)
2022-05-06 14:22:15 +0200zebrag(~chris@user/zebrag)
2022-05-06 14:26:02 +0200bahamas(~lucian@84.232.141.55)
2022-05-06 14:29:21 +0200raym(~raym@user/raym) (Ping timeout: 276 seconds)
2022-05-06 14:35:50 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 260 seconds)
2022-05-06 14:44:18 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 276 seconds)
2022-05-06 14:44:54 +0200raym(~raym@user/raym)
2022-05-06 14:49:03 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-06 14:49:28 +0200raym(~raym@user/raym) (Ping timeout: 248 seconds)
2022-05-06 14:51:15 +0200xkuru(~xkuru@user/xkuru)
2022-05-06 14:59:10 +0200phma(phma@2001:5b0:211c:bd68:1a30:3d9:b27f:d715) (Read error: Connection reset by peer)
2022-05-06 14:59:52 +0200phma(~phma@host-67-44-208-170.hnremote.net)
2022-05-06 15:01:03 +0200jao(~jao@211.68.17.95.dynamic.jazztel.es)
2022-05-06 15:06:17 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-05-06 15:10:42 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-05-06 15:10:51 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-05-06 15:13:54 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-05-06 15:17:16 +0200Sgeo(~Sgeo@user/sgeo)
2022-05-06 15:17:19 +0200__monty__(~toonn@user/toonn)
2022-05-06 15:20:10 +0200xaotuk(~sasha@net200-34-245-109.mbb.telenor.rs) (Ping timeout: 260 seconds)
2022-05-06 15:23:37 +0200arjun(~arjun@user/arjun) (Ping timeout: 248 seconds)
2022-05-06 15:23:57 +0200turlando(~turlando@user/turlando) (Ping timeout: 276 seconds)
2022-05-06 15:27:27 +0200odnes(~odnes@5-203-210-252.pat.nym.cosmote.net)
2022-05-06 15:29:26 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.5)
2022-05-06 15:29:35 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-05-06 15:35:00 +0200jao(~jao@211.68.17.95.dynamic.jazztel.es) (Ping timeout: 248 seconds)
2022-05-06 15:35:42 +0200raym(~raym@user/raym)
2022-05-06 15:38:36 +0200mmhat(~mmh@2001:4090:a246:8044:ee08:6bff:fe09:5315) (Quit: WeeChat 3.5)
2022-05-06 15:43:07 +0200raym(~raym@user/raym) (Ping timeout: 240 seconds)
2022-05-06 15:43:11 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-06 15:44:19 +0200raym(~raym@user/raym)
2022-05-06 15:49:20 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 260 seconds)
2022-05-06 15:50:42 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-05-06 15:50:45 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-05-06 15:56:21 +0200eltonpinto(~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3)
2022-05-06 15:59:41 +0200kenran(~kenran@200116b82b9bc0001d39572182082eac.dip.versatel-1u1.de)
2022-05-06 16:00:42 +0200kenran(~kenran@200116b82b9bc0001d39572182082eac.dip.versatel-1u1.de) (Client Quit)
2022-05-06 16:00:51 +0200kenran(~kenran@200116b82b9bc0001d39572182082eac.dip.versatel-1u1.de)
2022-05-06 16:01:10 +0200kenran(~kenran@200116b82b9bc0001d39572182082eac.dip.versatel-1u1.de) (Client Quit)
2022-05-06 16:01:46 +0200kenran(~kenran@200116b82b9bc0001d39572182082eac.dip.versatel-1u1.de)
2022-05-06 16:02:31 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Remote host closed the connection)
2022-05-06 16:05:00 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz)
2022-05-06 16:06:19 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-06 16:06:21 +0200jinsun__(~jinsun@user/jinsun)
2022-05-06 16:08:48 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 276 seconds)
2022-05-06 16:10:26 +0200jinsun(~jinsun@user/jinsun) (Ping timeout: 250 seconds)
2022-05-06 16:10:28 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-05-06 16:12:53 +0200eltonpinto(~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) (Quit: WeeChat 3.4.1)
2022-05-06 16:13:11 +0200zyklotomic(~ethan@res388d-128-61-94-22.res.gatech.edu) (Quit: WeeChat 2.7.1)
2022-05-06 16:16:48 +0200jao(~jao@211.68.17.95.dynamic.jazztel.es)
2022-05-06 16:17:45 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 252 seconds)
2022-05-06 16:19:45 +0200pavonia(~user@user/siracusa)
2022-05-06 16:20:15 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-05-06 16:20:43 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-05-06 16:21:35 +0200eltonpinto(~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3)
2022-05-06 16:22:27 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-06 16:26:09 +0200 <juhp[m]> geekosaur: okay
2022-05-06 16:26:49 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-05-06 16:31:21 +0200 <juhp[m]> The other day I couldn't get ghc9.4 alpha1 to build locally but it worked in the fedora buildsystem, today HLS builds locally for me with ghc9.0 but fails rejecting entropy in the buildsystem using cabal ugh (I suppose this is the kind of reason why people use nix... sigh)
2022-05-06 16:36:23 +0200 <juhp[m]> Ah I do have newer cabal-install locally now - wonder if that is the discrepancy
2022-05-06 16:37:53 +0200x_kuru(~xkuru@user/xkuru)
2022-05-06 16:38:08 +0200vpan(~0@212.117.1.172) (Quit: Leaving.)
2022-05-06 16:39:33 +0200Vajb(~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) (Read error: Connection reset by peer)
2022-05-06 16:39:44 +0200Vajb(~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56)
2022-05-06 16:41:15 +0200xkuru(~xkuru@user/xkuru) (Ping timeout: 260 seconds)
2022-05-06 16:41:15 +0200Vajb(~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) (Read error: Connection reset by peer)
2022-05-06 16:41:24 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-06 16:42:28 +0200shriekingnoise(~shrieking@201.231.16.156)
2022-05-06 16:44:03 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-06 16:48:36 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 248 seconds)
2022-05-06 16:49:22 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-05-06 16:51:15 +0200eltonpinto(~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) (Quit: WeeChat 3.4.1)
2022-05-06 16:51:32 +0200eltonpinto(~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3)
2022-05-06 16:53:50 +0200dfip^(~dfip@173-160-94-253-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection)
2022-05-06 16:54:10 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:f12b:6d29:e790:1b4f) (Quit: WeeChat 2.8)
2022-05-06 16:54:17 +0200melas(~melas@172.77.31.247)
2022-05-06 16:54:43 +0200nattiestnate(~nate@202.138.250.52)
2022-05-06 16:54:48 +0200 <melas> Hi. I decided to make haskell my first language and I'm 37. go me. Just wanted to say hi.
2022-05-06 16:55:20 +0200eltonpinto(~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) (Client Quit)
2022-05-06 16:55:35 +0200eltonpinto(~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3)
2022-05-06 16:55:45 +0200 <maerwald> hi
2022-05-06 16:58:33 +0200nattiestnate(~nate@202.138.250.52) (Client Quit)
2022-05-06 16:58:46 +0200nattiestnate(~nate@202.138.250.20)
2022-05-06 17:01:29 +0200moonsheep(~user@iespladelestany.xtec.cat)
2022-05-06 17:01:30 +0200 <exarkun> melas: welcome
2022-05-06 17:01:52 +0200 <maerwald> melas: do you already have learning material etc?
2022-05-06 17:03:24 +0200 <melas> Well, the only thing I have is the Haskell first principals book. I am interested in everything I can get my hands on though. Some video would be nice.
2022-05-06 17:04:12 +0200 <melas> I have a bunch of pdf's a friend gave to me that are all Haskell books from the 90's / early 200's but I'm not sure how relevant theyu are these days
2022-05-06 17:04:32 +0200eltonpinto(~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) (Quit: WeeChat 3.4.1)
2022-05-06 17:04:48 +0200 <melas> I was thinking about getting a Udemy course or the like
2022-05-06 17:04:49 +0200eltonpinto(~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3)
2022-05-06 17:05:25 +0200eltonpinto(~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) ()
2022-05-06 17:06:32 +0200 <maerwald> https://github.com/haskell-beginners-2022/course-plan
2022-05-06 17:06:46 +0200 <maerwald> and maybe https://www.cis.upenn.edu/~cis194/spring13/
2022-05-06 17:08:04 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-05-06 17:12:30 +0200eltonpinto(~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3)
2022-05-06 17:12:56 +0200eltonpinto(~1ntEgr8@2600:1700:47f0:d3d0:c468:7e34:5fd7:18a3) ()
2022-05-06 17:13:08 +0200odnes_(~odnes@5-203-210-252.pat.nym.cosmote.net)
2022-05-06 17:13:28 +0200Sgeo(~Sgeo@user/sgeo)
2022-05-06 17:13:59 +0200odnes(~odnes@5-203-210-252.pat.nym.cosmote.net) (Read error: Connection reset by peer)
2022-05-06 17:14:33 +0200alp_(~alp@user/alp) (Ping timeout: 248 seconds)
2022-05-06 17:15:52 +0200ec(~ec@gateway/tor-sasl/ec)
2022-05-06 17:16:37 +0200ec(~ec@gateway/tor-sasl/ec) (Client Quit)
2022-05-06 17:16:56 +0200ec(~ec@gateway/tor-sasl/ec)
2022-05-06 17:17:29 +0200odnes__(~odnes@5-203-210-252.pat.nym.cosmote.net)
2022-05-06 17:18:05 +0200zeenk(~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d) (Quit: Konversation terminated!)
2022-05-06 17:18:43 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-06 17:20:18 +0200odnes_(~odnes@5-203-210-252.pat.nym.cosmote.net) (Ping timeout: 276 seconds)
2022-05-06 17:23:34 +0200hololeap_(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-05-06 17:26:40 +0200 <moonsheep> is this the place to ask about the snap framework?
2022-05-06 17:26:48 +0200jao(~jao@211.68.17.95.dynamic.jazztel.es) (Ping timeout: 248 seconds)
2022-05-06 17:26:51 +0200 <moonsheep> in their about page they point to a channel in freenode, but it seems to be completely empty
2022-05-06 17:27:29 +0200 <moonsheep> logging in was a nightmare (they have a password length limit!) and there was literally no one there
2022-05-06 17:28:04 +0200 <moonsheep> so I figured I might as well come here
2022-05-06 17:28:12 +0200hololeap_(~hololeap@user/hololeap)
2022-05-06 17:28:47 +0200 <maerwald> snap might be past its prime... surprised there's no channel for it on libera though
2022-05-06 17:29:17 +0200alp_(~alp@user/alp)
2022-05-06 17:29:43 +0200 <moonsheep> it seemed pretty nice on paper so I thought I might as well try it
2022-05-06 17:30:28 +0200 <maerwald> these days, servant is the most popular
2022-05-06 17:30:44 +0200 <moonsheep> hadn't heard of it
2022-05-06 17:30:52 +0200 <maerwald> it expresses APIs as types
2022-05-06 17:32:04 +0200 <moonsheep> so then, if I'm to learn one I should do servant?
2022-05-06 17:32:09 +0200 <moonsheep> I also heard of yesod, is it any good?
2022-05-06 17:33:53 +0200 <juhp[m]> juhp[m]: okay that fixed it...
2022-05-06 17:35:43 +0200 <[exa]> moonsheep: everyone kinda moved to libera since one certain event. If you just want to start with web APIs etc, scotty might "just do".
2022-05-06 17:35:58 +0200gnyeki(~gnyeki@user/gnyeki)
2022-05-06 17:36:11 +0200ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2022-05-06 17:36:24 +0200ec(~ec@gateway/tor-sasl/ec)
2022-05-06 17:36:28 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-06 17:36:38 +0200 <moonsheep> does it have a templating engine?
2022-05-06 17:36:46 +0200 <moonsheep> i feel like that's one of the primary things I need
2022-05-06 17:36:56 +0200 <moonsheep> I don't care too much for the bells and whistles
2022-05-06 17:37:02 +0200 <[exa]> moonsheep: yesod is a bit more oldschool haskell, lots of template haskell
2022-05-06 17:37:15 +0200 <moonsheep> ah
2022-05-06 17:37:20 +0200 <[exa]> there are template languages that can be easily plugged into all of these afaik
2022-05-06 17:37:32 +0200 <moonsheep> good to know
2022-05-06 17:38:07 +0200 <moonsheep> so then, between servant and scotty, which should I choose?
2022-05-06 17:38:14 +0200 <[exa]> but usually it's easier to just write the html directly in blaze
2022-05-06 17:39:28 +0200 <[exa]> re servant vs scotty, depends on project complexity
2022-05-06 17:39:37 +0200 <moonsheep> oh so writing HTML as an embedded language?
2022-05-06 17:39:51 +0200 <moonsheep> as for project complexity I don't expect to get very far
2022-05-06 17:39:54 +0200 <[exa]> also servant is basically meant as a super-complexly-typed REST api server
2022-05-06 17:40:08 +0200 <moonsheep> I'm mostly doing this for my own amusement
2022-05-06 17:40:08 +0200 <[exa]> if you just want a nice web running safely with haskell, scotty is the way
2022-05-06 17:40:14 +0200 <moonsheep> right
2022-05-06 17:40:15 +0200 <tdammers> indeed, servant was never designed to be a "web framework"
2022-05-06 17:40:32 +0200 <[exa]> also, the learning curve doesn't hit you
2022-05-06 17:40:56 +0200stackdroid18(14094@user/stackdroid)
2022-05-06 17:41:06 +0200 <tdammers> And as far as template engines go, you can just plug in whichever one you like best. My go-to's are blaze when it's OK to compile templates in, and my own Ginger when I need users to change templates at runtime.
2022-05-06 17:41:43 +0200 <maerwald> moonsheep: https://haskell-servant.github.io/posts/2018-07-12-servant-dsl-typelevel.html
2022-05-06 17:42:34 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-05-06 17:42:38 +0200 <[exa]> moonsheep: I'd say the scotty ecosystem got pretty comprehensive, see here https://hoogle.haskell.org/?hoogle=scotty%20is%3Apackage&scope=set:stackage
2022-05-06 17:44:02 +0200 <dolio> Isn't not merely complexly typed, right? The point is that you write types to describe things, and functionality is derived from them.
2022-05-06 17:44:02 +0200 <moonsheep> thank you so much everyone
2022-05-06 17:44:23 +0200 <moonsheep> I think I'll go with scotty for now
2022-05-06 17:44:44 +0200 <moonsheep> I don't need to write an entire API at the type-level I don't think
2022-05-06 17:44:45 +0200 <geekosaur> right, the types aren't just there to be complex, they actually do most of the heavy lifting
2022-05-06 17:45:20 +0200phma(~phma@host-67-44-208-170.hnremote.net) (Read error: Connection reset by peer)
2022-05-06 17:45:40 +0200 <dolio> That's what's missing from a lot of 'fancy types' examples. Too many are just enforcing things that make writing anything a lot harder. One of the reasons for wanting fancy types is so that the machine can do more work for you, instead of requiring you to do more work.
2022-05-06 17:46:00 +0200 <tdammers> the issue with things like servant is that Haskell's type-level language is a bit more awkward than its term-level language
2022-05-06 17:46:09 +0200 <maerwald> well, I don't like most type-level heavy libraries, but I think servant managed to strike an ok balance
2022-05-06 17:46:16 +0200phma(~phma@2001:5b0:212a:a158:cf03:ba31:b20b:efff)
2022-05-06 17:46:24 +0200 <dolio> Yeah, Haskell is not ideal for accomplishing the goal.
2022-05-06 17:46:52 +0200 <maerwald> but yeah, type level APIs leak implementation difficulties
2022-05-06 17:46:59 +0200 <[exa]> dolio: btw that property about not overdoing types the wrong way should have a name (types as code generators, not restrictions?)
2022-05-06 17:47:03 +0200 <dolio> maerwald: Yeah, I'm trying to explain why you might like it better.
2022-05-06 17:47:48 +0200ec(~ec@gateway/tor-sasl/ec)
2022-05-06 17:49:08 +0200 <moonsheep> by the way, shouldn't https://wiki.haskell.org/Web/Frameworks make this things a bit clearer? I mean, most of the frameworks listed seem pretty unmaintained
2022-05-06 17:49:29 +0200 <moonsheep> perhaps there should be a section at the top for the more current frameworks?
2022-05-06 17:50:02 +0200 <moonsheep> it just blasted a bunch of options at me and didn't help me make a choice at all
2022-05-06 17:50:52 +0200 <geekosaur> the whole wiki's in that state, sadly
2022-05-06 17:51:14 +0200odnes(~odnes@5-203-206-15.pat.nym.cosmote.net)
2022-05-06 17:51:24 +0200 <maerwald> yeah, I want to delete it
2022-05-06 17:51:28 +0200 <moonsheep> I'd love to help imrpove that page, but I don't think I'm in a position to do that right now, especially considering I'm literally just starting out
2022-05-06 17:51:50 +0200odnes(~odnes@5-203-206-15.pat.nym.cosmote.net) (Remote host closed the connection)
2022-05-06 17:52:14 +0200 <hololeap_> internal libraries in Cabal seem so useful, how come they aren't seen more often?
2022-05-06 17:52:17 +0200hololeap_hololeap
2022-05-06 17:52:18 +0200 <dolio> Well, just don't forget to go back after you learn about everything, like everyone else did. :)
2022-05-06 17:52:30 +0200 <hololeap> https://cabal.readthedocs.io/en/3.4/cabal-package.html#sublibs
2022-05-06 17:52:36 +0200odnes__(~odnes@5-203-210-252.pat.nym.cosmote.net) (Ping timeout: 248 seconds)
2022-05-06 17:52:48 +0200 <moonsheep> now those are some big words >learn about everything
2022-05-06 17:52:54 +0200 <moonsheep> btw what's the proper way to quote messages?
2022-05-06 17:53:02 +0200 <geekosaur> there isn't one on irc
2022-05-06 17:53:04 +0200 <[exa]> moonsheep: actually I kinda like that people come here and just ask the developers :D also wiki maintenance isn't free, esp. with a diverse, opinionated and quickly developing community
2022-05-06 17:53:12 +0200 <geekosaur> I use » so I don't set off the bot
2022-05-06 17:53:27 +0200cdman(~dcm@user/dmc/x-4369397) (Ping timeout: 276 seconds)
2022-05-06 17:53:31 +0200 <moonsheep> ah, so anything goes? (as long as it's clear that it's a quote?)
2022-05-06 17:53:35 +0200 <geekosaur> not thst I quote very often and most of the time that ends up being whole messages so I just cut and paste with timestamp
2022-05-06 17:53:40 +0200 <moonsheep> [exa]: yeah I agree, I really like chatrooms
2022-05-06 17:54:02 +0200 <[exa]> moonsheep: IRC is a RPG, really imagine you're speaking and try to reduce the markup :D
2022-05-06 17:54:20 +0200 <geekosaur> hololeap, internal libs are still new enough that I suspect they're just not well knnown yet
2022-05-06 17:54:29 +0200 <geekosaur> think they came in with cabal 3.x
2022-05-06 17:54:47 +0200 <dolio> According to that doc it was 2.0, apparently.
2022-05-06 17:54:48 +0200kenran(~kenran@200116b82b9bc0001d39572182082eac.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2022-05-06 17:54:58 +0200 <[exa]> moonsheep: btw in #haskell, > on the beginning of the message triggers lambdabot to evaluate the message, but that's it I guess
2022-05-06 17:55:18 +0200 <moonsheep> >2 * "
2022-05-06 17:55:21 +0200 <moonsheep> >2*2
2022-05-06 17:55:30 +0200 <geekosaur> watch out for ">", "@", "?", and sometimes ":"
2022-05-06 17:55:32 +0200 <int-e> > 2*2 -- needs a space too
2022-05-06 17:55:33 +0200 <geekosaur> need a space
2022-05-06 17:55:33 +0200 <lambdabot> 4
2022-05-06 17:55:35 +0200 <moonsheep> > 2 * 2
2022-05-06 17:55:36 +0200 <lambdabot> 4
2022-05-06 17:55:38 +0200 <moonsheep> ah
2022-05-06 17:55:40 +0200 <moonsheep> that's really neat
2022-05-06 17:55:45 +0200 <dolio> Cabal has a lot of features that are actually pretty old, but are still considered new.
2022-05-06 17:56:02 +0200 <[exa]> an and '%' for the other bot
2022-05-06 17:56:08 +0200 <melas> Thanks maerwald for those links. I see the college course is from 2013, is that not old, or should it not matter since I'm just starting?
2022-05-06 17:56:31 +0200 <moonsheep> what happens if I
2022-05-06 17:56:32 +0200 <moonsheep> > getLine
2022-05-06 17:56:33 +0200 <lambdabot> <IO [Char]>
2022-05-06 17:56:39 +0200 <moonsheep> the bot is too smart
2022-05-06 17:56:47 +0200 <maerwald> melas: the college course is good
2022-05-06 17:57:05 +0200 <geekosaur> melas, that particular instantiation is from 2013, but it's generally considered the best of the series
2022-05-06 17:57:22 +0200 <geekosaur> I think later ones are also online if you prefer
2022-05-06 17:57:55 +0200 <int-e> moonsheep: "can't we use Haskell's type system to prevent the use of arbitrary IO" must have been one of the inspirations for lambdabot
2022-05-06 17:58:10 +0200 <moonsheep> yeah I figured
2022-05-06 17:58:48 +0200 <geekosaur> nicely packaged up as mueval if you want to use it yourself
2022-05-06 17:58:53 +0200 <moonsheep> > unsafePerformIO (putStrLn "hello")
2022-05-06 17:58:55 +0200 <lambdabot> error:
2022-05-06 17:58:55 +0200 <lambdabot> Variable not in scope: unsafePerformIO :: IO () -> t
2022-05-06 17:59:00 +0200 <moonsheep> worth a shot
2022-05-06 17:59:02 +0200 <int-e> At the time, the answer was "almost, but not quite"; SafeHaskell fills that gap. (Though I don't think anyone is 100% certain that it succeeds.)
2022-05-06 17:59:03 +0200 <dolio> hololeap: I guess it's potentially an even worse case of, "I need access to the internals, but they aren't available."
2022-05-06 17:59:04 +0200 <geekosaur> can't even import it
2022-05-06 17:59:28 +0200 <dolio> hololeap: Although, nowadays I think youc an depend on sublibraries, so it's actually a better solution to that?
2022-05-06 17:59:33 +0200 <moonsheep> still, the existence of unsafePerformIO doesn't let me sleep at night
2022-05-06 17:59:53 +0200 <geekosaur> enh, it has its uses. as long as you're careful
2022-05-06 18:00:02 +0200 <dolio> Like, you can have all your .Internal modules in an internal library that isn't in the main API, but someone who needs them can depend on lib:internal or something?
2022-05-06 18:00:10 +0200 <geekosaur> Debug.Trace is a useful and safe use of unsafePerformIO
2022-05-06 18:00:11 +0200renatofdds[m](~renatofdd@2001:470:69fc:105::1:3cfe) (Quit: You have been kicked for being idle)
2022-05-06 18:00:20 +0200 <moonsheep> yeah, I've used that before
2022-05-06 18:00:24 +0200renatofdds[m](~renatofdd@2001:470:69fc:105::1:3cfe)
2022-05-06 18:00:26 +0200 <geekosaur> dolio, can't depend on internal libraries
2022-05-06 18:00:29 +0200renatofdds[m](~renatofdd@2001:470:69fc:105::1:3cfe) ()
2022-05-06 18:00:35 +0200 <moonsheep> I mean, any language that doesn't have printf debugging is immediately painful to use
2022-05-06 18:00:52 +0200 <geekosaur> only the cabal file with them can depend on them, they're not exposed in the package system
2022-05-06 18:01:00 +0200 <moonsheep> but I feel like there should perhaps be some compiler flag in production to disable all trippy type system stuff
2022-05-06 18:01:07 +0200 <int-e> At the very least, unsafePerformIO is a necessary part of a usable FFI; without it, all imports would live in IO
2022-05-06 18:01:18 +0200 <melas> Ok great! I'm eventually wanting to get into helping with development on DSP/synthesis stuff. I was inspired by this: https://www.euterpea.com/
2022-05-06 18:01:24 +0200 <moonsheep> int-e: oh good point
2022-05-06 18:01:36 +0200 <melas> And I use tidalcycles.org
2022-05-06 18:01:59 +0200 <maerwald> melas: fyi the installation instructions there are quite outdated
2022-05-06 18:02:09 +0200 <moonsheep> anyway, was really fun coming here today, goodbye folks
2022-05-06 18:02:10 +0200 <dolio> geekosaur: What is the feature that allows a package to have multiple sublibraries, then?
2022-05-06 18:02:12 +0200moonsheep(~user@iespladelestany.xtec.cat) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-05-06 18:02:17 +0200 <maerwald> melas: use https://www.haskell.org/ghcup/ instead
2022-05-06 18:02:46 +0200 <geekosaur> dolio, its original intent was to allow internals to be accessed by a test program without exposing them in the public API
2022-05-06 18:04:23 +0200 <melas> Looks like I cant install mueval with cabal
2022-05-06 18:04:36 +0200 <geekosaur> make sure you "cabal update" first
2022-05-06 18:05:27 +0200 <geekosaur> this is something I hope they improve at some point, it's kinda silly you have to manually "cabal update" after installing
2022-05-06 18:05:41 +0200 <maerwald> geekosaur: ghcup install script takes care of that :p
2022-05-06 18:05:45 +0200odnes(~odnes@5-203-198-83.pat.nym.cosmote.net)
2022-05-06 18:05:53 +0200 <melas> ok thanks!
2022-05-06 18:06:44 +0200jinsun__(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-05-06 18:06:50 +0200 <melas> Yeha still cant fufill dependancies after cabal update for mueval
2022-05-06 18:07:13 +0200 <melas> oh derp, looks like a nux only packagae
2022-05-06 18:07:19 +0200 <melas> *nix
2022-05-06 18:07:41 +0200 <melas> Im on windows unfortunately for wok
2022-05-06 18:07:53 +0200 <melas> sorry cant type today...work
2022-05-06 18:08:38 +0200 <melas> I'll get my wsl up later. Thanks again for your help everyone, I'll definitely be around :)
2022-05-06 18:08:53 +0200 <maerwald> GHC also works on plain windows
2022-05-06 18:09:10 +0200jinsun(~jinsun@user/jinsun)
2022-05-06 18:09:49 +0200 <melas> I have ghc installed. Is mueval preferred for some reason?
2022-05-06 18:09:49 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-06 18:12:51 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-06 18:12:53 +0200jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-05-06 18:13:20 +0200xff0x(~xff0x@om126253182187.31.openmobile.ne.jp) (Read error: Connection reset by peer)
2022-05-06 18:15:13 +0200kraftwerk28(~kraftwerk@178.62.210.83)
2022-05-06 18:19:40 +0200 <geekosaur> I meant mueval is the sandboxed ghc used by lambdabot. You wouldn't use it normally
2022-05-06 18:19:46 +0200 <geekosaur> you would use ghci
2022-05-06 18:22:22 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-06 18:23:32 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-06 18:23:44 +0200 <melas> OH haha goctha
2022-05-06 18:24:06 +0200odnes(~odnes@5-203-198-83.pat.nym.cosmote.net) (Remote host closed the connection)
2022-05-06 18:24:39 +0200odnes(~odnes@5-203-198-83.pat.nym.cosmote.net)
2022-05-06 18:24:51 +0200jinsun(~jinsun@user/jinsun)
2022-05-06 18:28:42 +0200Guest87(~Guest87@179.43.100.206)
2022-05-06 18:28:51 +0200Vajb(~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56)
2022-05-06 18:31:05 +0200jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-05-06 18:31:27 +0200jinsun(~jinsun@user/jinsun)
2022-05-06 18:32:35 +0200Guest87(~Guest87@179.43.100.206) (Client Quit)
2022-05-06 18:33:05 +0200jinsun(~jinsun@user/jinsun) (Read error: Connection reset by peer)
2022-05-06 18:33:22 +0200jinsun(~jinsun@user/jinsun)
2022-05-06 18:37:21 +0200kraftwerk28(~kraftwerk@178.62.210.83) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-06 18:38:09 +0200kraftwerk28(~kraftwerk@178.62.210.83)
2022-05-06 18:39:02 +0200coot(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
2022-05-06 18:39:17 +0200PapuaHardyNetmesaoptimizer
2022-05-06 18:40:24 +0200 <dolio> geekosaur: At least locally, you can do what I said. Have a package that depends on a sublibrary of another package. Just tried it out.
2022-05-06 18:40:38 +0200 <geekosaur> interesting
2022-05-06 18:40:51 +0200 <dolio> I'd heard that hackage was going to get support for this, too, but I don't know whether it actually happened.
2022-05-06 18:40:59 +0200 <geekosaur> I think that contradicts the docs
2022-05-06 18:41:04 +0200 <geekosaur> ah
2022-05-06 18:41:19 +0200 <dolio> I'm not going to upload garbage package to hackage to test it out. :)
2022-05-06 18:41:49 +0200oxide(~lambda@user/oxide)
2022-05-06 18:47:53 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Quit: Leaving)
2022-05-06 18:48:07 +0200 <dolio> One plan I'd heard of for this is that lens could contain many sublibraries that could be depended on individually, rather than getting everything or nothing, but could they could all live in the same package.
2022-05-06 18:49:11 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-05-06 18:49:35 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-05-06 18:51:30 +0200 <c_wraith> I suppose if you partition it into things that exist solely to support lenses for types in extra packages, that would be of some use.
2022-05-06 18:51:45 +0200waleee(~waleee@h-155-4-221-82.NA.cust.bahnhof.se)
2022-05-06 18:52:58 +0200 <c_wraith> You could look at it as a way to address orphan instances. sublibraries that don't have the orphan instances if you don't want to pull in the dependencies, then one additional sublibrary for each dependency you want to add instances for.
2022-05-06 18:53:13 +0200 <c_wraith> They're kind of orphan, but kind of not.
2022-05-06 18:54:08 +0200phma(~phma@2001:5b0:212a:a158:cf03:ba31:b20b:efff) (Read error: Connection reset by peer)
2022-05-06 18:54:48 +0200 <c_wraith> though you wouldn't want an extra import when you do want the extra instances, so that might be a giant pain.
2022-05-06 18:55:08 +0200phma(~phma@2001:5b0:211b:9668:1b71:5de:d62c:3d45)
2022-05-06 18:58:01 +0200alp_(~alp@user/alp) (Ping timeout: 248 seconds)
2022-05-06 18:59:04 +0200stackdroid18(14094@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-05-06 19:00:48 +0200caef^(~caef@173-160-94-253-atlanta.hfc.comcastbusiness.net)
2022-05-06 19:01:05 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-06 19:03:51 +0200inversed(~inversed@176.248.27.211)
2022-05-06 19:04:12 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-06 19:06:58 +0200inversed_(~inversed@176.248.27.211) (Ping timeout: 272 seconds)
2022-05-06 19:08:41 +0200raym(~raym@user/raym) (Ping timeout: 248 seconds)
2022-05-06 19:11:34 +0200moonsheep(~user@iespladelestany.xtec.cat)
2022-05-06 19:12:26 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 250 seconds)
2022-05-06 19:13:01 +0200cyphase(~cyphase@user/cyphase)
2022-05-06 19:14:19 +0200odnes(~odnes@5-203-198-83.pat.nym.cosmote.net) (Ping timeout: 240 seconds)
2022-05-06 19:17:07 +0200 <maerwald> automatic partial builds... and cabal drops all the dependencies it doesn't need :p
2022-05-06 19:17:19 +0200odnes(~odnes@5-203-204-134.pat.nym.cosmote.net)
2022-05-06 19:17:56 +0200Polo(~Polo@user/polo)
2022-05-06 19:20:34 +0200 <dolio> c_wraith: I think part of the point was that there was already some partitioning in hackage, like `lens-X` such that if you depended on all of them, you'd get approximately all of lens. But it was a bunch of duplicated effort.
2022-05-06 19:21:13 +0200 <dolio> And instead of two dozen (or whatever) lens-X packages, it could be lens:X.
2022-05-06 19:21:43 +0200 <Franciman> when you escape haskell's ivory tower, writing interpreters becomes a breeze
2022-05-06 19:22:29 +0200 <Franciman> it all becomes so clear
2022-05-06 19:23:35 +0200waleee(~waleee@h-155-4-221-82.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
2022-05-06 19:26:49 +0200 <geekosaur> Franciman, do you have anything cogent to say or are you just randomly popping up to piss on Haskell in a Haskell channel?
2022-05-06 19:27:23 +0200 <Franciman> uh yes. Once you start thinking about the memory layout and management of the interpreter
2022-05-06 19:27:26 +0200moonsheep(~user@iespladelestany.xtec.cat) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-05-06 19:27:29 +0200 <Franciman> every piece starts fitting correctly
2022-05-06 19:27:36 +0200 <Franciman> sorry i was distracted on soccer
2022-05-06 19:27:51 +0200 <Franciman> so basically your interpreter becomes much more inspectable
2022-05-06 19:28:03 +0200 <Franciman> and you can provide very fine grained statistics and debugging things
2022-05-06 19:28:06 +0200 <Franciman> in haskell it proved REALLY HARD
2022-05-06 19:28:09 +0200 <Franciman> same in sml, really
2022-05-06 19:28:11 +0200 <geekosaur> again, is this cogent or is it just random pissing?
2022-05-06 19:28:19 +0200 <hololeap> haskell is like the fire hydrant on a dog's morning walk
2022-05-06 19:28:45 +0200 <Franciman> geekosaur: it is cogent for me.
2022-05-06 19:28:53 +0200 <Franciman> getting predictable performances is IMPORTANT
2022-05-06 19:28:55 +0200 <Franciman> for me
2022-05-06 19:29:03 +0200 <geekosaur> I mean, you keep doing this. saying the same things. randomly popping up apparently because nobody's talking about your world-saving interpreter
2022-05-06 19:29:12 +0200 <Franciman> nono sir
2022-05-06 19:29:15 +0200 <Franciman> i'm not saving anybody
2022-05-06 19:29:21 +0200 <Franciman> haskell is the best functional programming language around
2022-05-06 19:29:31 +0200 <Franciman> i'm just saying my experience with it writing an interpreter
2022-05-06 19:29:37 +0200 <Franciman> my language is not gonna be better than haskell, NEVER
2022-05-06 19:29:39 +0200 <Franciman> so please
2022-05-06 19:29:47 +0200 <Polo> Ay im pretty chill just sayin
2022-05-06 19:30:44 +0200odnes(~odnes@5-203-204-134.pat.nym.cosmote.net) (Ping timeout: 248 seconds)
2022-05-06 19:31:18 +0200 <Franciman> my takeaway so far was that ghc produces much better code when you don't question too much how things are evaluated, in what order etc
2022-05-06 19:31:40 +0200 <Franciman> an this is great. Getting the best performances when you don't think about how to get them, but just work declaratively is RAD
2022-05-06 19:32:05 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-05-06 19:32:06 +0200odnes(~odnes@5-203-251-40.pat.nym.cosmote.net)
2022-05-06 19:32:36 +0200 <Franciman> now the question is: is it harder to write an interpreter in C from scratch or to learn to productively tweak with stg-machine?
2022-05-06 19:33:04 +0200 <Franciman> o far my takeaway was: better with C, it took less
2022-05-06 19:33:42 +0200dagit(~dagit@2001:558:6025:38:6476:a063:d05a:44da)
2022-05-06 19:34:04 +0200econo(uid147250@user/econo)
2022-05-06 19:34:19 +0200 <Franciman> apparently what laziness shines at is forcing you to think declaratively, equationally
2022-05-06 19:34:29 +0200 <Franciman> and avoiding shitty hacks
2022-05-06 19:34:38 +0200 <Franciman> it just says: don't worry, i'mma take care of it
2022-05-06 19:35:04 +0200 <Franciman> something else which really shines at is forcing the separation of side effects, if you start using unsafePerformIO
2022-05-06 19:35:15 +0200 <Franciman> that doesn't respect referential trasparency, you get unpredictable stuff out
2022-05-06 19:35:27 +0200 <Franciman> while with eager evaluation it's much easier to sneak side effects in
2022-05-06 19:36:05 +0200 <Franciman> would i use haskell for an interpreter? Nope
2022-05-06 19:36:29 +0200 <Franciman> i found myself too in need of tweaking even the lowest bits of the evaluation process
2022-05-06 19:37:18 +0200 <Franciman> because i found that i needed to make things work in a very specific way, to get good introspection and performances together
2022-05-06 19:37:38 +0200 <Franciman> and ghc's runtime just want to naturally work in a different way
2022-05-06 19:38:48 +0200 <Franciman> you want a cogent example you said. I at first used an environment based interpreter
2022-05-06 19:38:58 +0200 <Franciman> but i wanted to convert it to a stack based one, with a manually managed stack
2022-05-06 19:39:16 +0200 <Franciman> the output was both horrendous and slow
2022-05-06 19:39:23 +0200 <Franciman> i haven't yet succeeded at doing it
2022-05-06 19:39:26 +0200 <monochrom> geekosaur: Self-assessments of "do you understand this?" "is this relevant to the rest of us?" "is your writing clear and easy to follow?" "are you correct?" are clearly all doomed, of course everyone thinks they're right.
2022-05-06 19:40:02 +0200 <Franciman> how would you specify the code for your lambda calculus with call by value in Haskell?
2022-05-06 19:40:07 +0200 <Franciman> what strategy would you use?
2022-05-06 19:41:13 +0200 <monochrom> At school there is always a minority of 1st-year students who request for re-grade by starting with "my code works but it failed your test cases"
2022-05-06 19:41:19 +0200 <sclv> personally i would google and read decades of prior relevant research
2022-05-06 19:41:37 +0200 <Franciman> thanks sclv
2022-05-06 19:41:40 +0200 <Franciman> i didn't think about it
2022-05-06 19:44:09 +0200 <Franciman> lols honestly
2022-05-06 19:44:20 +0200 <Franciman> i think you have a bit of a preconception with what i say
2022-05-06 19:45:26 +0200 <Franciman> if i just wanted to talk shit about haskell, i would just say Clojure > Haskell
2022-05-06 19:45:39 +0200 <Franciman> and things like that. I'm trying to get in good relationship with laziness
2022-05-06 19:45:55 +0200 <Franciman> sorry if i seem too assertive, maybe that's it
2022-05-06 19:47:32 +0200 <monochrom> You have found a way to implement an efficiency interpreter. Now you just need to also find a way to efficiently say it.
2022-05-06 19:47:40 +0200alp_(~alp@user/alp)
2022-05-06 19:48:24 +0200 <Franciman> but i'd like to write it in haskell :(
2022-05-06 19:48:26 +0200 <Franciman> but i can't
2022-05-06 19:48:34 +0200tfeb(~tfb@balview.plus.com)
2022-05-06 19:48:42 +0200 <monochrom> It takes only two sentences. Using an ADT in a high-level language for stack is inefficient. Using a low-level language to access memory more directly to build the stack is more efficient. THE END.
2022-05-06 19:48:56 +0200 <Franciman> most of the research i found was about doing kind of optimisations that require low level tweaks
2022-05-06 19:48:57 +0200caef^(~caef@173-160-94-253-atlanta.hfc.comcastbusiness.net) (Remote host closed the connection)
2022-05-06 19:49:11 +0200 <Franciman> like manually managing a stack where you intersperse activtion records
2022-05-06 19:49:18 +0200 <Franciman> and arguments to functions
2022-05-06 19:50:52 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-06 19:51:45 +0200 <Franciman> uhm monochrom but an unboxed representation wouldn't work?
2022-05-06 19:52:46 +0200 <monochrom> I am showing you how to use just two sentences to replace your I don't know 100 sentences?
2022-05-06 19:53:04 +0200mbuf(~Shakthi@223.184.62.182) (Quit: Leaving)
2022-05-06 19:53:09 +0200 <monochrom> "Now you just need to also find a way to efficiently say it."
2022-05-06 19:53:21 +0200 <Franciman> ah ok thank you
2022-05-06 19:53:28 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Read error: Connection reset by peer)
2022-05-06 19:53:33 +0200 <monochrom> If it is still not clear: Efficient communication with other people.
2022-05-06 19:53:45 +0200 <Franciman> yes, i will pay more attention
2022-05-06 19:53:49 +0200 <Franciman> sorry thanks
2022-05-06 19:54:25 +0200Polo(~Polo@user/polo) (Quit: Textual IRC Client: www.textualapp.com)
2022-05-06 19:58:30 +0200raym(~raym@user/raym)
2022-05-06 19:58:44 +0200bahamas(~lucian@84.232.141.55)
2022-05-06 19:58:52 +0200pie_(~pie_bnc@user/pie/x-2818909) ()
2022-05-06 19:59:29 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2022-05-06 19:59:30 +0200pie_(~pie_bnc@user/pie/x-2818909)
2022-05-06 19:59:50 +0200stackdroid18(14094@user/stackdroid)
2022-05-06 19:59:51 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2022-05-06 20:00:13 +0200nurupo(~nurupo.ga@user/nurupo) (Quit: nurupo.ga)
2022-05-06 20:00:27 +0200nurupo(~nurupo.ga@user/nurupo)
2022-05-06 20:00:41 +0200tfeb(~tfb@balview.plus.com) (Remote host closed the connection)
2022-05-06 20:02:44 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 248 seconds)
2022-05-06 20:03:05 +0200alp_(~alp@user/alp) (Ping timeout: 248 seconds)
2022-05-06 20:03:19 +0200 <sm> Franciman, I can relate to refreshment you feel when switching from one language/paradigm to another after some time.. you really enjoy the things that are easier in the the other
2022-05-06 20:03:24 +0200 <sm> there's a bit of a honeymoon I find
2022-05-06 20:05:07 +0200kenran(~kenran@200116b82b9bc000295e8ec7d820b24d.dip.versatel-1u1.de)
2022-05-06 20:05:15 +0200kenran(~kenran@200116b82b9bc000295e8ec7d820b24d.dip.versatel-1u1.de) (Client Quit)
2022-05-06 20:05:25 +0200 <sm> there's also often a big effect from having just the done same thing elsewhere.. everything is much clearer in your mind
2022-05-06 20:05:55 +0200 <sm> but I like those experience reports/comparisons of the same task across in multiple languages/paradigms
2022-05-06 20:05:59 +0200gawen(~gawen@user/gawen) (Ping timeout: 240 seconds)
2022-05-06 20:06:01 +0200 <maerwald> yeah, working on vscode-haskell gave me a refresher why javascript is a nightmare :D
2022-05-06 20:06:11 +0200 <sm> heh
2022-05-06 20:06:16 +0200kenran(~kenran@200116b82b9bc000379afc39a9f09380.dip.versatel-1u1.de)
2022-05-06 20:06:47 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-05-06 20:06:57 +0200 <sm> I really enjoyed doing some scripting python lately. So much less ceremony! Delightful! It did get a bit tedious making it robust, fairly soon
2022-05-06 20:07:06 +0200 <geekosaur> still, there is that and there is whining about escaping the ivory tower
2022-05-06 20:07:43 +0200 <monochrom> The lesson holds for all high-level languages.
2022-05-06 20:08:00 +0200 <monochrom> All the way from Java to Clojure. Not just Haskell. Not just lazy evalution.
2022-05-06 20:08:04 +0200odnes(~odnes@5-203-251-40.pat.nym.cosmote.net) (Ping timeout: 248 seconds)
2022-05-06 20:08:46 +0200echoone(~echoone@2a02:8109:a1c0:5d05:c5d3:5bf9:8bd:8b04)
2022-05-06 20:08:56 +0200 <monochrom> But I guess this is just another facet of what sclv said about prior work.
2022-05-06 20:09:39 +0200 <monochrom> If you never look at prior work, you both don't know known lessons and don't know that it is not just Haskell and it is not just ivory tower.
2022-05-06 20:11:25 +0200 <echoone> https://sodocumentation.net/haskell/topic/4525/data-aeson---json-in-haskell <-- I was trying this aeson tutorial, but when I decode I get Nothing instead of Just. I'm not sure what I am doing wrong here.
2022-05-06 20:11:44 +0200 <monochrom> Show actual code?
2022-05-06 20:12:16 +0200 <monochrom> @where paste
2022-05-06 20:12:16 +0200 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
2022-05-06 20:12:21 +0200 <carbolymer> echoone: you might probably need a type annotation to let decode know that you're decoding into `Maybe Person`
2022-05-06 20:12:39 +0200 <maerwald> echoone: try `eitherDecode`
2022-05-06 20:13:13 +0200 <monochrom> Or another blog that posts untested code?
2022-05-06 20:13:31 +0200 <echoone> Ah, the type annotation helped.
2022-05-06 20:13:52 +0200carbolymerscores
2022-05-06 20:14:08 +0200 <carbolymer> we should have leaderboard in helping ;-]
2022-05-06 20:14:12 +0200tfeb(~tfb@balview.plus.com)
2022-05-06 20:14:23 +0200 <maerwald> please no... even more DMs
2022-05-06 20:14:57 +0200 <carbolymer> ;]
2022-05-06 20:15:07 +0200 <monochrom> Oh Haha "SO Documentation" "Based on the documentation made by Stack Overflow contributors"
2022-05-06 20:15:19 +0200 <carbolymer> lol
2022-05-06 20:15:23 +0200 <Hecate> hey folks
2022-05-06 20:15:26 +0200 <carbolymer> also why this looks like ripcode
2022-05-06 20:15:28 +0200 <carbolymer> but blue
2022-05-06 20:15:30 +0200 <monochrom> So yes, taken out of context.
2022-05-06 20:15:31 +0200 <Hecate> except Markdown support, what's your Haddock christmas list?
2022-05-06 20:15:43 +0200 <carbolymer> Asciidoc support
2022-05-06 20:15:45 +0200dsrt^(~dsrt@173-160-94-253-atlanta.hfc.comcastbusiness.net)
2022-05-06 20:15:46 +0200 <maerwald> Hecate: this one thing there with CPP
2022-05-06 20:15:48 +0200 <maerwald> what was it
2022-05-06 20:15:56 +0200 <Hecate> maerwald: oh yes I stumbled across your ticket recently
2022-05-06 20:15:57 +0200 <maerwald> https://github.com/haskell/haddock/issues/1440
2022-05-06 20:16:22 +0200 <Hecate> maerwald: wouldn't this be fixed by Haddock reading the documentation from .hi files directly?
2022-05-06 20:16:27 +0200 <Hecate> instead of parsing the fix?
2022-05-06 20:16:28 +0200 <Hecate> *file
2022-05-06 20:16:29 +0200 <Hecate> damnit
2022-05-06 20:16:30 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-05-06 20:17:28 +0200 <maerwald> not sure
2022-05-06 20:17:45 +0200Techcable(~Techcable@user/Techcable) (Ping timeout: 276 seconds)
2022-05-06 20:18:05 +0200 <maerwald> there was a workaround which somewhat works
2022-05-06 20:18:07 +0200 <maerwald> I forgot
2022-05-06 20:18:25 +0200gawen(~gawen@user/gawen)
2022-05-06 20:18:46 +0200 <maerwald> I think covid broke my memory, so yeah
2022-05-06 20:18:49 +0200 <monochrom> No worries, you wrote down the workarounds in that ticket too :)
2022-05-06 20:19:02 +0200 <maerwald> I think there was another one with a haddock flag
2022-05-06 20:19:07 +0200 <echoone> Here's another example aeson code that isn't working for me: https://paste.tomsmeding.com/uSWnLLi7
2022-05-06 20:19:08 +0200 <monochrom> Ah
2022-05-06 20:19:16 +0200 <echoone> testDecode gives me Nothing
2022-05-06 20:19:22 +0200 <carbolymer> maerwald: quite probable, I've read somewhere that someone lost their sense of humour after covid vaccine...
2022-05-06 20:19:35 +0200 <maerwald> something along the lines of NO_HOME something
2022-05-06 20:19:55 +0200 <maerwald> I'm being overly specific
2022-05-06 20:20:04 +0200 <monochrom> I wonder if you should change _code to code or change code to _code
2022-05-06 20:20:25 +0200 <dmj`> echoone: ^
2022-05-06 20:20:37 +0200 <echoone> Ah, it's the underscore. Crap. I didn't notice that for some reason.
2022-05-06 20:20:40 +0200 <dmj`> the underscore is causing the failure
2022-05-06 20:20:47 +0200 <echoone> Isn't there an option to ignore the underscore?
2022-05-06 20:21:12 +0200 <dmj`> genericParseJSON defaultOptions { fieldLabelModifier = drop 1 }
2022-05-06 20:21:41 +0200 <echoone> Yeah, let me try that.
2022-05-06 20:23:19 +0200 <maerwald> {-# OPTIONS_HADDOCK not-home #-}
2022-05-06 20:23:57 +0200 <dmj`> *suspense*
2022-05-06 20:24:02 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-05-06 20:24:46 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-06 20:26:13 +0200 <maerwald> hm no, that does nothing for me in the CPP case
2022-05-06 20:26:50 +0200 <echoone> It worked. Thanks dmj`
2022-05-06 20:30:34 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-05-06 20:34:39 +0200tfeb(~tfb@balview.plus.com) (Ping timeout: 276 seconds)
2022-05-06 20:34:52 +0200hololeap(~hololeap@user/hololeap)
2022-05-06 20:35:03 +0200 <dmj`> echoone: nice
2022-05-06 20:36:53 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-06 20:41:11 +0200king_gs(~Thunderbi@2806:103e:29:99f9:ca77:e08e:3816:239e)
2022-05-06 20:41:28 +0200echoone(~echoone@2a02:8109:a1c0:5d05:c5d3:5bf9:8bd:8b04) (Quit: Client closed)
2022-05-06 20:42:31 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-06 20:42:45 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 260 seconds)
2022-05-06 20:44:15 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-06 20:44:44 +0200Techcable(~Techcable@user/Techcable)
2022-05-06 20:48:38 +0200mjrosenb(~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net) (Ping timeout: 260 seconds)
2022-05-06 20:50:17 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-06 20:54:55 +0200mjrosenb(~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net)
2022-05-06 20:55:39 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-06 20:56:14 +0200Henson(~kvirc@107-179-133-201.cpe.teksavvy.com)
2022-05-06 20:57:37 +0200 <Henson> if I deepseq something more than once, does it stop traversing the tree of thunks when it encounters one that has already been evaluated? For example, if I have a data structure that is expensive to deepseq and I call deepseq on it more than once, do I only pay the evaluation cost once?
2022-05-06 20:58:58 +0200 <maerwald> I think it would at least traverse the spine twice https://hackage.haskell.org/package/deepseq-1.4.7.0/docs/src/Control.DeepSeq.html#line-541
2022-05-06 20:59:28 +0200 <Henson> I have a complex algorithm that is having a memory leak because large data is being associated with some of the data that is being put in. For some reason that I can't unravel, this data is not being garbage collected due to unevaluated thunks prevent garbage collection. Deepseqing the data structure makes it work, but I can't figure out where the problem is occurring and don't know if I...
2022-05-06 20:59:33 +0200alp_(~alp@user/alp)
2022-05-06 20:59:41 +0200 <maerwald> also remember reading that in Simon Marlow's concurrency book
2022-05-06 20:59:52 +0200 <Henson> should give up an be satisfied with having a deepseq in my algorithm. Somebody told me a couple months ago that you shouldn't use deepseq in production code.
2022-05-06 21:00:02 +0200 <maerwald> huh? why not
2022-05-06 21:00:28 +0200 <maerwald> I know a production use case for it. Without it, the backend wouldn't be able to correctly boot.
2022-05-06 21:00:40 +0200malinoskj290645(~malinoskj@c-69-138-223-33.hsd1.va.comcast.net)
2022-05-06 21:00:50 +0200Guest6593(~Polo@user/polo)
2022-05-06 21:01:13 +0200 <geekosaur> unevaluated thunks /per se/ shouldn't prevent gc
2022-05-06 21:01:29 +0200 <Henson> maerwald: so, it'll traverse the spine of any lists, but won't descend into the items on the list if they're already evaluated?
2022-05-06 21:01:59 +0200 <geekosaur> unless those thunks are themselves holding within them references perhaps, but I'd think then they wouldn't be thunks
2022-05-06 21:02:08 +0200 <monochrom> I am a different somebody and I tell you that all sentences of the form "___ in production code" are sus.
2022-05-06 21:02:24 +0200 <Henson> well, something is going on that is preventing things from being garbage collected, and despite putting bangs and seqs and maps of seqs all over the place, I can't figure out where the problem is.
2022-05-06 21:03:11 +0200 <monochrom> Aliasing blocks GC. Same as in Java.
2022-05-06 21:03:12 +0200 <geekosaur> also it is possible to have something whose outer constructor has been evaluated but an inner one hasn't, so deepsequ seems like it would be useless if it didn't descend into those
2022-05-06 21:04:24 +0200 <Henson> geekosaur: right, that's true. The algorithm is iterative, with only a little of the data structure changing each time. So if I deepseq on every iteration, then it has to traverse the whole data structure every time.
2022-05-06 21:04:38 +0200 <monochrom> Example. "main = let xs=[0..n] in print xs" is O(1) space. "main = let xs=[0..n] in print xs >> print (length xs)" is Ω(n) space.
2022-05-06 21:05:20 +0200 <monochrom> The latter has nothing to do with laziness. It holds in SML too.
2022-05-06 21:05:35 +0200 <geekosaur> right
2022-05-06 21:05:44 +0200 <monochrom> The former though is helped, not hurt, by laziness. The former is Ω(n) space in SML.
2022-05-06 21:05:52 +0200 <Henson> I tried using various heap profiling options to try to figure out where the problem is, but they're not very helpful. The problem is that the memory is being allocated and freed in C++, so the memory profiling doesn't clearly indicate who the culprit is, as Haskell only knows about the foreign pointers (which are small) and not the data they point to (which is large)
2022-05-06 21:05:58 +0200Guest6593Polo
2022-05-06 21:06:22 +0200 <monochrom> There are also examples doing the opposite, laziness causing more space than eagerness.
2022-05-06 21:06:40 +0200 <monochrom> The conclusion is that both sentences "laziness blocks GC" and "eagerness blocks GC" are sus.
2022-05-06 21:06:57 +0200 <monochrom> The meta-conclusion is that all Internet hearsays are sus.
2022-05-06 21:07:11 +0200Hensonchuckles
2022-05-06 21:07:17 +0200 <monochrom> The Internet is full of dimwit false dichotomies.
2022-05-06 21:07:59 +0200 <monochrom> As a final example just look at how they say "big-O is worst case, big-Omega is best case, big-Theta is average case".
2022-05-06 21:08:28 +0200 <Henson> does anybody have any suggestions on tracking down thunk chains? I imagine I just need to put a bang on one or two lines, but which line is the question.
2022-05-06 21:08:45 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-06 21:10:16 +0200moonsheep(~user@185.154.9.192)
2022-05-06 21:11:32 +0200 <Henson> I'm just progressively disabling the things that are being deepseq'd, to see if I can pinpoint which part of the thunk tree is causing the problem
2022-05-06 21:11:36 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-05-06 21:13:45 +0200ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2022-05-06 21:15:04 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 240 seconds)
2022-05-06 21:18:06 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-06 21:19:40 +0200hololeap(~hololeap@user/hololeap)
2022-05-06 21:20:02 +0200hololeap(~hololeap@user/hololeap) (Client Quit)
2022-05-06 21:21:21 +0200alp_(~alp@user/alp) (Ping timeout: 256 seconds)
2022-05-06 21:22:45 +0200 <Henson> is there a function I can use to evaluate only the spine of a list?
2022-05-06 21:23:17 +0200 <monochrom> length :)
2022-05-06 21:25:27 +0200 <Henson> monochrom: but in pure core that length needs to be used somewhere for it to actually occur, right? Or can I use seq to cause the length to be evaluated without actually using it? Like l = length foo; l `seq` real_calculation
2022-05-06 21:25:54 +0200 <Henson> or maybe for the second part data = l `seq` real_calculation
2022-05-06 21:26:25 +0200Hensonplays with :sprint
2022-05-06 21:27:06 +0200odnes(~odnes@5-203-251-40.pat.nym.cosmote.net)
2022-05-06 21:28:16 +0200 <monochrom> You are under too much influence from Internet false dichotomies. Either that, or you also wish they were true because they are so simple and comforting (until refuted by actual code).
2022-05-06 21:28:50 +0200 <monochrom> Premature evaluating of an ADT spine causes more space, not less. At least in most cases.
2022-05-06 21:29:48 +0200king_gs(~Thunderbi@2806:103e:29:99f9:ca77:e08e:3816:239e) (Ping timeout: 250 seconds)
2022-05-06 21:29:58 +0200 <Henson> monochrom: I'm just trying different ideas to track down what it is that will cause my algorithm to stop bloating
2022-05-06 21:30:02 +0200 <monochrom> Here is the usual scenerio of laziness causing more space. An ADT must not be involved. Instead, a small footprint type such as Int has to be involved. You try to compute 1+2+3+...+n but you write a lazy foldl.
2022-05-06 21:31:02 +0200 <energizer> i've got a monoid with the property that for some f, f (f x) = x. is there a type class for that?
2022-05-06 21:31:22 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-06 21:32:00 +0200 <monochrom> No. But it's commonly known as an involution, provided f ≠ id. Also, not just for monoids.
2022-05-06 21:32:35 +0200 <monochrom> Every non-id self-inverse function is called an involution. No other constraint.
2022-05-06 21:33:22 +0200 <energizer> why isn't there a type class Involution?
2022-05-06 21:33:35 +0200 <monochrom> Not enough interest?
2022-05-06 21:33:44 +0200 <tdammers> no practical use?
2022-05-06 21:34:02 +0200 <tdammers> this would be a typeclass with no methods, only laws
2022-05-06 21:34:20 +0200king_gs(~Thunderbi@187.201.220.53)
2022-05-06 21:34:32 +0200 <monochrom> There is no drive in giving all involutions of the world the same name.
2022-05-06 21:35:13 +0200 <monochrom> Plus the harsh reality that there can be a million distinct involutions for the same type.
2022-05-06 21:35:36 +0200bliminse(~bliminse@host86-164-128-238.range86-164.btcentralplus.com)
2022-05-06 21:35:38 +0200 <monochrom> Every mathematical definition, no matter how useful, does not need a class.
2022-05-06 21:35:38 +0200 <energizer> the same is true of + isnt it?
2022-05-06 21:35:59 +0200 <energizer> or *
2022-05-06 21:36:10 +0200 <maerwald> Henson: https://play-haskell.tomsmeding.com/play/paste/UL3wRxWd/1)
2022-05-06 21:36:19 +0200 <monochrom> Is it? Ring axioms are much more constraining.
2022-05-06 21:36:53 +0200 <energizer> i guess this is why idris has "named instances"
2022-05-06 21:37:14 +0200 <monochrom> For each type there are usually fairly few ways to make a ring, and by the time you discard the trolling ones, there is usually just 0 or 1 way.
2022-05-06 21:37:34 +0200 <monochrom> But there can still be a ton of actually useful involutions.
2022-05-06 21:37:35 +0200notzmv(~zmv@user/notzmv)
2022-05-06 21:38:43 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2022-05-06 21:38:50 +0200 <monochrom> In the case of monoid, it is saved by wanting to express both Foldable and Writer.
2022-05-06 21:39:30 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-06 21:40:14 +0200 <monochrom> This is why Monoid is fairly recent. Because Foldable and Writer are also fairly recent. Observe that without Foldable or Writer, no one was interested in make a Monoid class either.
2022-05-06 21:40:40 +0200 <monochrom> Every mathematical definition does not need a class.
2022-05-06 21:43:04 +0200 <monochrom> Why does Haskell attract all the perfectionist idealists?
2022-05-06 21:43:16 +0200Polo(~Polo@user/polo) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-06 21:43:40 +0200 <darkling> It's the mathematical elegance, I suspect.
2022-05-06 21:43:41 +0200 <energizer> it's either here or lisp
2022-05-06 21:43:50 +0200 <monochrom> Lean exists.
2022-05-06 21:44:02 +0200 <monochrom> 20 years ago I would understand.
2022-05-06 21:44:19 +0200 <monochrom> This is 2022 and we have Idris and Lean and Clean and Mercury.
2022-05-06 21:45:14 +0200 <energizer> imho Lean wasnt really a programming language before lean4
2022-05-06 21:47:39 +0200 <monochrom> Why would a perfectionist want a programming language in the first place?
2022-05-06 21:48:26 +0200 <energizer> this conversation is getting weird
2022-05-06 21:48:52 +0200 <monochrom> OK, but IMO wanting a class for involutions is weird in the first place.
2022-05-06 21:49:10 +0200 <juri_> Don't believe in weird conversations? you better start believin', cause you're in one now.
2022-05-06 21:49:10 +0200 <monochrom> It would make sense in a math language but not a programming language.
2022-05-06 21:49:42 +0200 <monochrom> actually s/would/might/ , I am not even convinced about that.
2022-05-06 21:49:50 +0200coot(~coot@213.134.190.95)
2022-05-06 21:52:20 +0200Kaiepi(~Kaiepi@156.34.47.253) (Remote host closed the connection)
2022-05-06 21:52:45 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-06 21:57:04 +0200kaskal(~kaskal@089144207160.atnat0016.highway.bob.at) (Quit: ZNC - https://znc.in)
2022-05-06 21:59:25 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 256 seconds)
2022-05-06 22:00:13 +0200agumonkey(~user@88.163.231.79)
2022-05-06 22:00:47 +0200kaskal(~kaskal@2001:4bb8:2e0:b5bd:e3c0:d71b:f32:84d8)
2022-05-06 22:01:40 +0200odnes(~odnes@5-203-251-40.pat.nym.cosmote.net) (Remote host closed the connection)
2022-05-06 22:01:59 +0200odnes(~odnes@5-203-251-40.pat.nym.cosmote.net)
2022-05-06 22:02:06 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-05-06 22:11:11 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2022-05-06 22:11:34 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-05-06 22:16:06 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-05-06 22:18:42 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-06 22:23:51 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds)
2022-05-06 22:25:22 +0200marvin3(www-data@2607:5300:60:8be::1)
2022-05-06 22:25:33 +0200marvin3(www-data@2607:5300:60:8be::1) (Client Quit)
2022-05-06 22:27:27 +0200hexfive(~eric@50.35.83.177)
2022-05-06 22:31:58 +0200king_gs(~Thunderbi@187.201.220.53) (Read error: Connection reset by peer)
2022-05-06 22:34:05 +0200king_gs(~Thunderbi@187.201.220.53)
2022-05-06 22:34:15 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Read error: No route to host)
2022-05-06 22:35:29 +0200agumonkey(~user@88.163.231.79) (Read error: Connection reset by peer)
2022-05-06 22:37:00 +0200agumonkey(~user@88.163.231.79)
2022-05-06 22:40:34 +0200bahamas(~lucian@84.232.141.55)
2022-05-06 22:41:21 +0200dostoevsky0(~5c42c5384@user/dostoevsky)
2022-05-06 22:43:21 +0200dostoevsky(~5c42c5384@user/dostoevsky) (Ping timeout: 276 seconds)
2022-05-06 22:43:21 +0200dostoevsky0dostoevsky
2022-05-06 22:45:13 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 256 seconds)
2022-05-06 22:45:56 +0200bahamas(~lucian@84.232.141.55)
2022-05-06 22:48:44 +0200odnes(~odnes@5-203-251-40.pat.nym.cosmote.net) (Quit: Leaving)
2022-05-06 22:50:53 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 256 seconds)
2022-05-06 22:54:23 +0200king_gs(~Thunderbi@187.201.220.53) (Read error: Connection reset by peer)
2022-05-06 22:55:26 +0200king_gs(~Thunderbi@2806:103e:29:99f9:ca77:e08e:3816:239e)
2022-05-06 23:11:16 +0200jollygood2(www-data@2607:5300:60:8be::1)
2022-05-06 23:12:21 +0200kraftwerk28(~kraftwerk@178.62.210.83) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-06 23:12:44 +0200kraftwerk28(~kraftwerk@178.62.210.83)
2022-05-06 23:12:49 +0200kraftwerk28(~kraftwerk@178.62.210.83) (Remote host closed the connection)
2022-05-06 23:13:56 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-06 23:14:10 +0200Henson(~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
2022-05-06 23:14:25 +0200king_gs(~Thunderbi@2806:103e:29:99f9:ca77:e08e:3816:239e) (Ping timeout: 260 seconds)
2022-05-06 23:20:00 +0200michalz(~michalz@185.246.204.101) (Remote host closed the connection)
2022-05-06 23:20:29 +0200kraftwerk28(~kraftwerk@178.62.210.83)
2022-05-06 23:20:33 +0200kraftwerk28(~kraftwerk@178.62.210.83) (Remote host closed the connection)
2022-05-06 23:23:26 +0200bahamas(~lucian@84.232.141.55)
2022-05-06 23:23:53 +0200jollygood2(www-data@2607:5300:60:8be::1) (Quit: CGI:IRC (EOF))
2022-05-06 23:24:22 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-05-06 23:25:07 +0200zeenk(~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d)
2022-05-06 23:25:37 +0200megaTherion(~therion@unix.io) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-06 23:26:01 +0200agumonkey(~user@88.163.231.79) (Ping timeout: 256 seconds)
2022-05-06 23:26:26 +0200king_gs(~Thunderbi@187.201.220.53)
2022-05-06 23:27:37 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 246 seconds)
2022-05-06 23:29:01 +0200bahamas(~lucian@84.232.141.55)
2022-05-06 23:29:07 +0200kraftwerk28(~kraftwerk@178.62.210.83)
2022-05-06 23:29:18 +0200jollygood2(www-data@2607:5300:60:8be::1)
2022-05-06 23:33:24 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 248 seconds)
2022-05-06 23:34:01 +0200megaTherion(~therion@mail.unix.io)
2022-05-06 23:35:09 +0200bahamas(~lucian@84.232.141.55)
2022-05-06 23:35:34 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-06 23:36:05 +0200jollygood2(www-data@2607:5300:60:8be::1) (Quit: CGI:IRC (EOF))
2022-05-06 23:36:20 +0200jollygood2(www-data@2607:5300:60:8be::1)
2022-05-06 23:37:25 +0200 <dmj`> free monads are great
2022-05-06 23:39:48 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 250 seconds)
2022-05-06 23:40:44 +0200hexfive(~eric@50.35.83.177) (Quit: WeeChat 3.5)
2022-05-06 23:40:46 +0200kenran(~kenran@200116b82b9bc000379afc39a9f09380.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2022-05-06 23:41:38 +0200bahamas(~lucian@84.232.141.55)
2022-05-06 23:42:09 +0200 <jollygood2> any estimate when ghc 9.2.3 is coming?
2022-05-06 23:42:43 +0200stackdroid18(14094@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-05-06 23:42:54 +0200Codaraxis(~Codaraxis@user/codaraxis)
2022-05-06 23:44:57 +0200stackdroid18(14094@user/stackdroid)
2022-05-06 23:46:32 +0200causal(~eric@50.35.83.177)
2022-05-06 23:48:11 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-06 23:48:25 +0200causal(~eric@50.35.83.177) (Client Quit)
2022-05-06 23:48:42 +0200Tuplanolla(~Tuplanoll@91-159-68-39.elisa-laajakaista.fi)
2022-05-06 23:48:47 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 256 seconds)
2022-05-06 23:50:47 +0200causal(~eric@50.35.83.177)
2022-05-06 23:51:03 +0200srz(~srz@181.228.49.93)
2022-05-06 23:52:48 +0200causal(~eric@50.35.83.177) (Client Quit)
2022-05-06 23:53:24 +0200causal(~eric@50.35.83.177)
2022-05-06 23:53:46 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-05-06 23:54:10 +0200causal(~eric@50.35.83.177) (Client Quit)
2022-05-06 23:54:57 +0200causal(~user@50.35.83.177)
2022-05-06 23:56:23 +0200king_gs(~Thunderbi@187.201.220.53) (Read error: Connection reset by peer)
2022-05-06 23:59:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-06 23:59:15 +0200king_gs(~Thunderbi@187.201.220.53)
2022-05-06 23:59:20 +0200causal(~user@50.35.83.177) (Client Quit)