2023/09/26

2023-09-26 00:01:28 +0200 <mauke> yeah
2023-09-26 00:01:50 +0200 <erisco> {-# LANGUAGE GoQuickGetTricked #-}
2023-09-26 00:03:17 +0200 <mauke> {-# LANGUAGE YouThoughtThisWasHaskellThinkAgain #-}
2023-09-26 00:06:10 +0200 <EvanR> I was skeptical of this post from the beginning!
2023-09-26 00:07:11 +0200nicosm(~nicosm@186.141.199.185) (Remote host closed the connection)
2023-09-26 00:07:16 +0200 <EvanR> causing people to think haskell is behaving mysteriously but somewhere someone enabled Strict
2023-09-26 00:07:25 +0200 <EvanR> who does that!
2023-09-26 00:08:29 +0200 <erisco> I feel like if you have a deep transformer stack, which probably includes state, throw/catch, maybe ST or IO... maybe just use a procedural language. Though I know some argue Haskell is the best of those :P
2023-09-26 00:12:29 +0200 <EvanR> you sound like a proponent of simple haskell!
2023-09-26 00:12:36 +0200 <EvanR> smh
2023-09-26 00:13:05 +0200 <EvanR> enterprise integration haskell is where it's at
2023-09-26 00:22:54 +0200wroathe(~wroathe@user/wroathe)
2023-09-26 00:22:59 +0200Guest|93(~Guest|93@5.151.176.124)
2023-09-26 00:23:01 +0200Guest|93(~Guest|93@5.151.176.124) (Client Quit)
2023-09-26 00:24:41 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-09-26 00:24:56 +0200EvanR(~EvanR@user/evanr) (Quit: Leaving)
2023-09-26 00:25:33 +0200 <monochrom> Instead of "fix and strictness don't mix", more generally, recursion and strictness don't mix.
2023-09-26 00:26:54 +0200 <monochrom> The very idiom "x = m >> x", no matter how you rename it, depends on ">>" being non-strict in its 2nd operand.
2023-09-26 00:28:33 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-09-26 00:29:31 +0200 <monochrom> But then if you rewrite it to "x = m >>= \_ -> x" or "fix (\s -> m >>= \_ -> s)" you miss the problem. :)
2023-09-26 00:30:39 +0200Inst_(~Inst@120.244.192.250) (Remote host closed the connection)
2023-09-26 00:31:04 +0200Inst_(~Inst@120.244.192.250)
2023-09-26 00:31:09 +0200mysl_(~mysl@user/mysl)
2023-09-26 00:31:39 +0200mysl(~mysl@user/mysl) (Ping timeout: 244 seconds)
2023-09-26 00:32:08 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-09-26 00:38:43 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
2023-09-26 00:39:12 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-09-26 00:40:01 +0200gatekempt(~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2023-09-26 00:40:41 +0200gatekempt(~gatekempt@user/gatekempt)
2023-09-26 00:41:26 +0200phma(phma@2001:5b0:210f:7ad8:cf80:dd9b:ec34:9d9) (Read error: Connection reset by peer)
2023-09-26 00:41:53 +0200phma(~phma@host-67-44-208-139.hnremote.net)
2023-09-26 00:42:43 +0200apache2(apache2@anubis.0x90.dk) (Remote host closed the connection)
2023-09-26 00:42:52 +0200apache2(apache2@anubis.0x90.dk)
2023-09-26 00:54:13 +0200Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Ping timeout: 240 seconds)
2023-09-26 01:00:11 +0200bontaq(~user@ool-45707d2c.dyn.optonline.net) (Remote host closed the connection)
2023-09-26 01:02:30 +0200gatekempt(~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2023-09-26 01:05:13 +0200Inst_(~Inst@120.244.192.250) (Ping timeout: 240 seconds)
2023-09-26 01:08:21 +0200segfaultfizzbuzz(~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
2023-09-26 01:08:28 +0200Inst_(~Inst@120.244.192.250)
2023-09-26 01:13:11 +0200infinity0(~infinity0@pwned.gg) (Ping timeout: 246 seconds)
2023-09-26 01:13:25 +0200infinity0(~infinity0@pwned.gg)
2023-09-26 01:14:13 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-09-26 01:21:18 +0200infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2023-09-26 01:23:26 +0200infinity0(~infinity0@pwned.gg)
2023-09-26 01:25:10 +0200fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-09-26 01:27:02 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b000:8eef:3ca4:f8cf) (Remote host closed the connection)
2023-09-26 01:38:33 +0200gatekempt(~gatekempt@user/gatekempt)
2023-09-26 01:43:35 +0200hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-09-26 01:46:01 +0200Square(~Square@user/square)
2023-09-26 01:54:19 +0200ystael(~ystael@user/ystael) (Ping timeout: 264 seconds)
2023-09-26 01:58:56 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-09-26 01:58:56 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-09-26 01:58:56 +0200wroathe(~wroathe@user/wroathe)
2023-09-26 02:00:17 +0200johnw(~johnw@69.62.242.138)
2023-09-26 02:04:05 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b000:8eef:3ca4:f8cf)
2023-09-26 02:05:10 +0200gatekempt(~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2023-09-26 02:11:15 +0200vgtw(~vgtw@user/vgtw) (Ping timeout: 252 seconds)
2023-09-26 02:14:05 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-09-26 02:14:32 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2023-09-26 02:22:49 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2023-09-26 02:27:51 +0200vgtw(~vgtw@user/vgtw)
2023-09-26 02:31:11 +0200pavonia_(~user@user/siracusa)
2023-09-26 02:31:42 +0200pavonia(~user@user/siracusa) (Read error: Connection reset by peer)
2023-09-26 02:31:54 +0200pavonia_pavonia
2023-09-26 02:32:06 +0200alphacentauri(alphacenta@gateway/vpn/protonvpn/alphacentauri)
2023-09-26 02:41:18 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 258 seconds)
2023-09-26 02:41:24 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
2023-09-26 02:43:04 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-09-26 02:53:25 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-09-26 02:55:42 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b000:8eef:3ca4:f8cf) (Remote host closed the connection)
2023-09-26 02:55:58 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-09-26 02:57:26 +0200tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2023-09-26 02:57:55 +0200xff0x(~xff0x@2405:6580:b080:900:c1a7:3646:65e2:ac61) (Ping timeout: 264 seconds)
2023-09-26 02:58:31 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2023-09-26 02:59:38 +0200xff0x(~xff0x@2405:6580:b080:900:db99:9da1:fa4d:eaa1)
2023-09-26 03:08:23 +0200wroathe(~wroathe@user/wroathe) (Quit: Lost terminal)
2023-09-26 03:10:08 +0200todi(~todi@p4fd1a856.dip0.t-ipconnect.de)
2023-09-26 03:14:05 +0200todi1(~todi@p4fd1a856.dip0.t-ipconnect.de)
2023-09-26 03:14:43 +0200todi(~todi@p4fd1a856.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2023-09-26 03:14:55 +0200foul_owl_(~kerry@185.216.231.179) (Ping timeout: 244 seconds)
2023-09-26 03:16:24 +0200todi1todi
2023-09-26 03:17:24 +0200hugo(znc@verdigris.lysator.liu.se)
2023-09-26 03:18:43 +0200Inst_(~Inst@120.244.192.250) (Ping timeout: 240 seconds)
2023-09-26 03:26:26 +0200gatekempt(~gatekempt@user/gatekempt)
2023-09-26 03:28:52 +0200foul_owl_(~kerry@174-21-66-189.tukw.qwest.net)
2023-09-26 03:40:29 +0200otto_s(~user@p4ff27465.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2023-09-26 03:42:17 +0200otto_s(~user@p5b04494d.dip0.t-ipconnect.de)
2023-09-26 03:57:12 +0200Lears(~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
2023-09-26 03:57:29 +0200[Leary](~Leary]@user/Leary/x-0910699)
2023-09-26 04:00:13 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
2023-09-26 04:03:11 +0200 <haskellbridge> <m​aerwald> You can have recursion primitives written in C/C++
2023-09-26 04:03:54 +0200 <haskellbridge> <m​aerwald> That's what Mu does
2023-09-26 04:04:01 +0200nicosm(~nicosm@host98.181-4-190.telecom.net.ar)
2023-09-26 04:07:39 +0200 <monochrom> That will be beside the point because C and C++ have very different semantics than either Haskell-Report Haskell or GHC.
2023-09-26 04:08:12 +0200 <monochrom> Put it another way, recursion in C and C++ will have some other strengths and limitations.
2023-09-26 04:10:48 +0200gatekempt(~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2023-09-26 04:12:09 +0200td_(~td@i53870932.versanet.de) (Ping timeout: 258 seconds)
2023-09-26 04:13:45 +0200td_(~td@i53870926.versanet.de)
2023-09-26 04:20:50 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-09-26 04:20:50 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-09-26 04:20:50 +0200finn_elijaFinnElija
2023-09-26 04:22:41 +0200edr(~edr@user/edr) (Quit: Leaving)
2023-09-26 04:41:40 +0200danse-nr3(~francesco@151.37.220.70)
2023-09-26 04:44:19 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-09-26 04:44:53 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-09-26 04:44:56 +0200Sgeo_(~Sgeo@user/sgeo)
2023-09-26 04:54:02 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 252 seconds)
2023-09-26 04:55:50 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net)
2023-09-26 05:01:13 +0200alphacentauri(alphacenta@gateway/vpn/protonvpn/alphacentauri) (Ping timeout: 240 seconds)
2023-09-26 05:03:48 +0200 <Square> I have a vague memory I'm getting this wrong. If I write instance : "instance SomeReq a => MyClass a where". I want to believe that creates an instance for types with SomeReq? But I read somewhere it doesn't work like that?
2023-09-26 05:04:02 +0200aforemny_(~aforemny@2001:9e8:6cca:8700:2bc1:22ff:8c3c:2087) (Ping timeout: 246 seconds)
2023-09-26 05:04:30 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-09-26 05:04:30 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-09-26 05:04:30 +0200wroathe(~wroathe@user/wroathe)
2023-09-26 05:04:52 +0200aforemny(~aforemny@i59F516FC.versanet.de)
2023-09-26 05:05:03 +0200 <danse-nr3> where SomeReq is a constraint
2023-09-26 05:05:27 +0200 <danse-nr3> yes i think it broadly works that way
2023-09-26 05:05:46 +0200 <monochrom> It does not say "if not SomeReq Int then not MyClass Int". Instead, it just causes more errors like "Int is not SomeReq, aborting".
2023-09-26 05:06:22 +0200 <Square> thanks
2023-09-26 05:06:29 +0200 <monochrom> In Prolog terms you lack the closed-world assumption and therefore lack negation-as-failure in Haskell's class system.
2023-09-26 05:07:26 +0200alphacentauri(alphacenta@gateway/vpn/protonvpn/alphacentauri)
2023-09-26 05:07:32 +0200 <Square> It requires me to use UndecidableInstances though. Not sure if that is bad.
2023-09-26 05:08:00 +0200 <danse-nr3> i think that requirement comes from something else you have in the code
2023-09-26 05:08:04 +0200 <monochrom> That is an orthogonal issue after you accept what I said.
2023-09-26 05:08:24 +0200 <monochrom> Any "instance Foo a" covers all types because all types match "a".
2023-09-26 05:08:55 +0200 <monochrom> Err, sorry, that was something else.
2023-09-26 05:10:44 +0200 <monochrom> If you have the very normal "instance B a => C [a]" for example, then suppose the computer asks itself about C [Int]. Then the question reduces to asking about B Int. See how the type keeps shrinking? This guarantees and end to this line of questions.
2023-09-26 05:11:05 +0200 <monochrom> But if you have "instance D a => E a" then nothing shrinks, you lose that guarantee.
2023-09-26 05:11:55 +0200 <Square> Gotcha. Thanks.
2023-09-26 05:14:35 +0200 <danse-nr3> oh is that which requires UndecidableInstances? Odd. Even if the type does not shrink, the set of instances is very limited
2023-09-26 05:15:25 +0200 <monochrom> The rule is being very conservative of course. It doesn't guaranteee non-termination either, clearly.
2023-09-26 05:17:34 +0200 <monochrom> The extension allows you to say "I know that my case terminates for some other reason".
2023-09-26 05:18:51 +0200 <monochrom> You can get all this from the GHC user's guide, as usual. It has examples.
2023-09-26 05:20:02 +0200 <monochrom> (To be sure, it assumes that your mental model for unextended Haskell 2010 does not contradict actual Haskell 2010 to begin with.)
2023-09-26 05:21:03 +0200danza(~francesco@151.37.220.70)
2023-09-26 05:23:04 +0200 <Square> This boggles me though. How can they be overlapping when QOpt doesn't implement Enum? https://paste.tomsmeding.com/UBRFMvD6
2023-09-26 05:23:27 +0200 <Square> QOpt1 i mean
2023-09-26 05:23:34 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 244 seconds)
2023-09-26 05:23:57 +0200 <monochrom> You have two "instance ... IsChoice a". Therefore, for example, Int matches both "a"s.
2023-09-26 05:24:22 +0200 <monochrom> At this stage it does not matter that the "..."s are different. As a corollary of what I said before.
2023-09-26 05:25:02 +0200 <monochrom> Without CLW, you don't even know that Int cannot satisfy one of the ...s
2023-09-26 05:25:32 +0200 <monochrom> You're writing Prolog when this system is not Prolog.
2023-09-26 05:26:19 +0200 <Square> what does CLW mean?
2023-09-26 05:26:21 +0200 <monochrom> Refinement: Without CLW, you don't even know that Int cannot satisfy both of the ...s.
2023-09-26 05:26:30 +0200 <monochrom> closed-world assumption, as said.
2023-09-26 05:26:35 +0200 <Square> sorry.
2023-09-26 05:27:04 +0200 <Square> ok. Ill save your response and try to internalize it. =D
2023-09-26 05:27:24 +0200 <monochrom> It's actually very intuitive because we do it in daily lives.
2023-09-26 05:28:31 +0200 <monochrom> Mom says "if you stay up late playing AOE4, you'll be grounded". I then stay up late studying Haskell. I know that I won't be grounded, and Mom agrees. Why?
2023-09-26 05:29:05 +0200 <Square> Ok. I get it.
2023-09-26 05:29:29 +0200 <monochrom> Because CLW adds an implicit "Mom has not said any other way to get you grounded. So that's the only way."
2023-09-26 05:30:36 +0200 <monochrom> But recall that this means you have to have read all the explicitly stated rules. In Prolog, this amounts to whole-program compiling, i.e., no more separate compilation.
2023-09-26 05:30:59 +0200 <monochrom> But Haskell insists on separate compilation. Therefore, you cannot have CLW.
2023-09-26 05:31:37 +0200 <Square> Makes sense
2023-09-26 05:33:23 +0200 <monochrom> Asking "is it true that Int is not an instance of Monoid?" requires checking all modules, which Haskell refuses to do.
2023-09-26 05:34:28 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2023-09-26 05:34:46 +0200 <Square> Right. I guess I've fooled myself it looks so obvious in print.
2023-09-26 05:34:48 +0200 <monochrom> At least in the early stage of compiling just one module that says "instance Monoid a => Foo a".
2023-09-26 05:36:15 +0200hiyori(~hiyori@user/hiyori)
2023-09-26 05:43:43 +0200danza(~francesco@151.37.220.70) (Ping timeout: 240 seconds)
2023-09-26 05:44:19 +0200tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2023-09-26 05:45:16 +0200foul_owl_(~kerry@174-21-66-189.tukw.qwest.net) (Ping timeout: 244 seconds)
2023-09-26 05:46:33 +0200EvanR(~EvanR@user/evanr)
2023-09-26 05:46:43 +0200danse-nr3(~francesco@151.37.220.70) (Ping timeout: 240 seconds)
2023-09-26 05:49:43 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2023-09-26 05:49:59 +0200danse-nr3(~francesco@151.37.220.70)
2023-09-26 05:59:24 +0200foul_owl_(~kerry@157.97.134.165)
2023-09-26 06:00:50 +0200hexagoxel(~hexagoxel@2a01:4f8:c0c:e::2) (Ping timeout: 255 seconds)
2023-09-26 06:00:57 +0200aforemny_(~aforemny@2001:9e8:6cf7:2600:8cfd:3e44:4f1a:c0ee)
2023-09-26 06:01:48 +0200aforemny(~aforemny@i59F516FC.versanet.de) (Ping timeout: 244 seconds)
2023-09-26 06:05:05 +0200[Leary](~Leary]@user/Leary/x-0910699) (Ping timeout: 240 seconds)
2023-09-26 06:05:44 +0200[Leary](~Leary]@user/Leary/x-0910699)
2023-09-26 06:07:49 +0200 <mauke> I think of instance declarations as working sort of like equations of a function
2023-09-26 06:08:25 +0200g(g@libera/staff/glguy) (Remote host closed the connection)
2023-09-26 06:08:27 +0200g(g@libera/staff/glguy)
2023-09-26 06:08:30 +0200 <mauke> 'instance MyClass (T a) where' is like 'myClass (T a) = ()'
2023-09-26 06:08:54 +0200 <mauke> 'instance (Monoid a) => MyClass (T a) where' is like 'myClass (T a) = monoid a'
2023-09-26 06:09:19 +0200 <mauke> and 'instance SomeReq a => MyClass a where' is like 'myClass a = someReq a'
2023-09-26 06:09:49 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-09-26 06:10:05 +0200 <mauke> from the latter, you can see that it overlaps everything because the pattern 'a' is fully generic
2023-09-26 06:11:38 +0200 <mauke> also, if someone adds 'someReq a = myClass a' (i.e. 'instance MyClass a => SomeReq a where ...'), you have infinite recursion in the type checker, i.e. undecidable instances
2023-09-26 06:14:41 +0200killer(~killer@cg.ptr134.ptrcloud.net)
2023-09-26 06:15:32 +0200 <danse-nr3> well it would not explain without the context monochrom added about having to compile the whole package. That is not infinite recursion, because it will always be used with a specific type
2023-09-26 06:16:03 +0200killer(~killer@cg.ptr134.ptrcloud.net) (Client Quit)
2023-09-26 06:20:43 +0200yoyofreeman(~yoyofreem@176.97.76.178)
2023-09-26 06:27:21 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 252 seconds)
2023-09-26 06:27:47 +0200vglfr(~vglfr@cli-188-239-233-89.bbn.slav.dn.ua) (Remote host closed the connection)
2023-09-26 06:28:31 +0200vglfr(~vglfr@cli-188-239-233-89.bbn.slav.dn.ua)
2023-09-26 06:30:18 +0200arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net)
2023-09-26 06:42:13 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-09-26 06:50:49 +0200danse-nr3(~francesco@151.37.220.70) (Ping timeout: 252 seconds)
2023-09-26 06:52:01 +0200hugo(znc@verdigris.lysator.liu.se)
2023-09-26 06:55:16 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-09-26 06:59:16 +0200danse-nr3(~francesco@151.37.220.70)
2023-09-26 06:59:58 +0200acidjnk_new(~acidjnk@p200300d6e7072f72d8a1b9f6b31540dd.dip0.t-ipconnect.de)
2023-09-26 07:00:33 +0200Inst_(~Inst@120.244.192.250)
2023-09-26 07:00:36 +0200 <Axman6> :t interact
2023-09-26 07:00:37 +0200 <lambdabot> (String -> String) -> IO ()
2023-09-26 07:00:49 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds)
2023-09-26 07:03:09 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2023-09-26 07:03:44 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-09-26 07:06:17 +0200michalz(~michalz@185.246.207.203)
2023-09-26 07:10:46 +0200danse-nr3(~francesco@151.37.220.70) (Remote host closed the connection)
2023-09-26 07:11:09 +0200danse-nr3(~francesco@151.37.220.70)
2023-09-26 07:13:31 +0200Fischmiep(~Fischmiep@user/Fischmiep) (Ping timeout: 264 seconds)
2023-09-26 07:15:07 +0200space100043(~space1000@user/space1000)
2023-09-26 07:15:29 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 245 seconds)
2023-09-26 07:16:52 +0200stites(~stites@130.44.147.204)
2023-09-26 07:16:55 +0200danse-nr3(~francesco@151.37.220.70) (Ping timeout: 258 seconds)
2023-09-26 07:22:55 +0200mrmr15(~mrmr@user/mrmr) (Ping timeout: 244 seconds)
2023-09-26 07:24:01 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2023-09-26 07:26:01 +0200Fischmiep(~Fischmiep@user/Fischmiep)
2023-09-26 07:28:35 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2023-09-26 07:29:47 +0200hugo(znc@verdigris.lysator.liu.se)
2023-09-26 07:30:05 +0200mysl_(~mysl@user/mysl) (Ping timeout: 240 seconds)
2023-09-26 07:32:02 +0200chomwitt(~chomwitt@2a02:587:7a2f:d000:1ac0:4dff:fedb:a3f1)
2023-09-26 07:32:36 +0200kronicma1(user49904@neotame.csclub.uwaterloo.ca) (Ping timeout: 240 seconds)
2023-09-26 07:32:57 +0200kronicma1(user76110@neotame.csclub.uwaterloo.ca)
2023-09-26 07:34:15 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-09-26 07:36:56 +0200mysl(~mysl@user/mysl)
2023-09-26 07:38:16 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2023-09-26 07:38:56 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2023-09-26 07:39:18 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-09-26 07:42:06 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-09-26 07:46:17 +0200mrmr15(~mrmr@user/mrmr)
2023-09-26 07:46:43 +0200hugo(znc@verdigris.lysator.liu.se)
2023-09-26 08:01:58 +0200danse-nr3(~francesco@151.37.220.70)
2023-09-26 08:02:47 +0200mysl_(~mysl@user/mysl)
2023-09-26 08:03:14 +0200mysl(~mysl@user/mysl) (Ping timeout: 252 seconds)
2023-09-26 08:03:27 +0200mrmr15(~mrmr@user/mrmr) (Ping timeout: 240 seconds)
2023-09-26 08:07:03 +0200Square3(~Square4@user/square)
2023-09-26 08:08:05 +0200chomwitt(~chomwitt@2a02:587:7a2f:d000:1ac0:4dff:fedb:a3f1) (Ping timeout: 240 seconds)
2023-09-26 08:09:08 +0200Bongo(~Bongo@2001:fb1:11a:3907:1cec:134f:5a4b:d9a6)
2023-09-26 08:09:43 +0200Square(~Square@user/square) (Ping timeout: 240 seconds)
2023-09-26 08:11:44 +0200Bongo(~Bongo@2001:fb1:11a:3907:1cec:134f:5a4b:d9a6) (Remote host closed the connection)
2023-09-26 08:16:00 +0200mrmr15(~mrmr@user/mrmr)
2023-09-26 08:18:51 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de)
2023-09-26 08:22:02 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-09-26 08:30:15 +0200misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 240 seconds)
2023-09-26 08:31:03 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:b7bb:c936:d84d:659c)
2023-09-26 08:32:29 +0200CiaoSen(~Jura@2a05:5800:2b7:400:664b:f0ff:fe37:9ef)
2023-09-26 08:33:07 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 252 seconds)
2023-09-26 08:33:55 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2023-09-26 08:36:55 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-09-26 08:36:55 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2023-09-26 08:38:14 +0200danse-nr3_(~francesco@151.35.182.2)
2023-09-26 08:38:21 +0200danse-nr3(~francesco@151.37.220.70) (Read error: Connection reset by peer)
2023-09-26 08:40:42 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de)
2023-09-26 08:52:26 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-09-26 09:00:25 +0200Inst_(~Inst@120.244.192.250) (Ping timeout: 258 seconds)
2023-09-26 09:05:43 +0200hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds)
2023-09-26 09:10:13 +0200space100043(~space1000@user/space1000) (Ping timeout: 240 seconds)
2023-09-26 09:25:43 +0200hugo-(znc@verdigris.lysator.liu.se)
2023-09-26 09:26:06 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2023-09-26 09:28:27 +0200califax(~califax@user/califx) (Remote host closed the connection)
2023-09-26 09:29:32 +0200chele(~chele@user/chele)
2023-09-26 09:31:03 +0200Inst_(~Inst@120.244.192.250)
2023-09-26 09:31:05 +0200califax(~califax@user/califx)
2023-09-26 09:31:59 +0200coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-09-26 09:32:46 +0200 <Inst_> Heh, just realized Michel Houellebecq must be as annoying to the French as Rammstein is to Germans
2023-09-26 09:33:13 +0200Inst_Inst
2023-09-26 09:35:32 +0200idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.5)
2023-09-26 09:35:33 +0200 <danse-nr3_> can't be worse than Francoise Hardy
2023-09-26 09:36:10 +0200 <haskellbridge> <I​nst> La Possibilité d'un Élixir
2023-09-26 09:36:24 +0200sabino(~sabino@user/sabino) (Quit: Lambda _ -> x)
2023-09-26 09:36:45 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2023-09-26 09:37:51 +0200 <danse-nr3_> what is that, a song?
2023-09-26 09:42:19 +0200 <Inst> It's a reference to the Possibility of an Island, a Michel Houellebecq novel.
2023-09-26 09:43:06 +0200 <Inst> Houellebecq is apparently referred to in France as their "screwed up computer programmer"
2023-09-26 09:43:59 +0200 <danse-nr3_> i see, i don't know him much. So he was a coder and then became a novelist? (also poet and singer, i saw skimming around)
2023-09-26 09:45:17 +0200 <Inst> I'm actually wondering which language he was writing, and whether his novels would have been so entertainingly messed up if he had used Haskell :)
2023-09-26 09:45:30 +0200 <danse-nr3_> ^^;
2023-09-26 09:45:44 +0200 <Inst> I think I read The Elementary Particles and it ends with the protagonist checking into an insane asylum or a monastery, I can't forget which.
2023-09-26 09:45:58 +0200 <Inst> The Possibility of an Island I think ends with the suicide of one of the protagonists?
2023-09-26 09:46:36 +0200 <danse-nr3_> well this in itself does not prove his novels are bad. But we should probably move to #haskell-offtopic if we want to delve into arts critique
2023-09-26 09:46:46 +0200 <Inst> Yeah, you're right.
2023-09-26 09:46:54 +0200cfricke(~cfricke@user/cfricke)
2023-09-26 09:53:53 +0200 <Inst> I was thinking about writing something, but probably there's better things to do right now, about not only NeoHaskell, but also other attempts to build an Elixir for Haskell
2023-09-26 09:54:03 +0200 <Inst> Like, Elixir was pretty damaging to Erlang in the long run
2023-09-26 09:54:46 +0200 <dminuoso> I dont think it was damaging at all
2023-09-26 09:55:01 +0200machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-09-26 09:55:05 +0200 <dminuoso> The areas where erlang was and still is in use at, are barely covered by much of what Elixir is used for today.
2023-09-26 09:55:42 +0200 <dminuoso> Besides, since Elixir runs on the same VM, if anything it helps more keeping it alive
2023-09-26 09:55:51 +0200 <Inst> I think the NeoHaskell, since it's now an alt-prelude, and probably a movement, idea is interesting for its potential to inject new energy into Haskell, and at least get me to stop worrying about Haskell dying
2023-09-26 09:56:58 +0200 <Inst> The reason I'm calling it a possibility is because I don't think there's a guarantee the developer will actually get anything done or produce anything useful, but it presents an interesting, if not guaranteed to be useful, idea.
2023-09-26 09:57:12 +0200 <Inst> There are obviously going to be drawbacks of such a thing, i.e, it's possible it'll drain energy from the mainstream Haskell community
2023-09-26 09:57:26 +0200 <Inst> It's possible it might make funding for traditional Haskell harder to come by
2023-09-26 09:58:00 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-09-26 09:58:25 +0200 <Inst> The interesting thing is that they've gotten quite a Discord server up, and there's been demonstrated interest in such a product.
2023-09-26 09:58:55 +0200 <Inst> So even if it fails, someone else is going to try it, and the question it poses is: how do we manage such a thing so that we achieve at least a local maxima of cost-benefit?
2023-09-26 10:00:15 +0200ubert(~Thunderbi@178.115.46.247.wireless.dyn.drei.com)
2023-09-26 10:02:52 +0200 <Inst> One BIG promise for something like NeoHaskell is that it can help demarcate the line between "serious" Haskell and "boring" Haskell, the latter which is intended to face the possibly commodity developer using the codebase.
2023-09-26 10:03:30 +0200 <Inst> I.e, you have different .nh and .hs files, and .nh, at least short-term, enforces a level of extension restraint, which you can only get around by importing .hs modules.
2023-09-26 10:04:15 +0200Guest|64(~Guest|64@91.244.8.116)
2023-09-26 10:04:29 +0200 <danse-nr3_> NeoHaskell reminds me a lot of NeoCabal
2023-09-26 10:04:41 +0200 <Guest|64> Hello, help with issue pls - PS C:\Functional_prog_using_haskell> stack build
2023-09-26 10:04:41 +0200 <Guest|64> Executable named sh not found on path:
2023-09-26 10:05:27 +0200 <danse-nr3_> is this some homework?
2023-09-26 10:05:58 +0200 <Guest|64> i just create new library and try to build it
2023-09-26 10:06:07 +0200 <int-e> ENEEDINFO
2023-09-26 10:06:56 +0200 <Guest|64> i get it after install ghcup
2023-09-26 10:07:41 +0200 <Inst> If it's windows, consider opening a new command line to get new path variables.
2023-09-26 10:08:00 +0200 <Inst> It's probably an issue with path environment variables
2023-09-26 10:08:18 +0200 <Inst> What was NeoCabal?
2023-09-26 10:08:21 +0200 <danse-nr3_> looks like windows to me ...
2023-09-26 10:08:29 +0200 <Guest|64> yep, windows
2023-09-26 10:08:40 +0200 <danse-nr3_> oh, a community poll was rised, then they decided to call it `stack`
2023-09-26 10:09:11 +0200 <int-e> . o O ( PS1='C:\> ' )
2023-09-26 10:09:40 +0200 <danse-nr3_> *raised
2023-09-26 10:11:49 +0200 <Inst> I'm wondering what happened in the Snoyman era, tbh.
2023-09-26 10:12:25 +0200 <danse-nr3_> same as NeoHaskell i guess. Someone thinks they can do a whole lot of things better, by themselves
2023-09-26 10:13:11 +0200 <int-e> well, sometimes they're right
2023-09-26 10:13:22 +0200Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2023-09-26 10:13:53 +0200 <int-e> `stack` seems to hit a sweeter spot than `cabal` for quite a few people.
2023-09-26 10:14:08 +0200 <int-e> `cabal-install` that is.
2023-09-26 10:16:30 +0200 <Inst> Stack made a lot of improvements to the Haskell build experience, even though it's on maintainership mode.
2023-09-26 10:16:41 +0200__monty__(~toonn@user/toonn)
2023-09-26 10:17:06 +0200 <lortabac> as far as I can see NeoHaskell is a much more ambitious (and vague) project than stack
2023-09-26 10:17:25 +0200 <lortabac> stack was invented to solve a specific concrete problem
2023-09-26 10:17:59 +0200int-eshould maybe have put more emphasis on *sometimes*
2023-09-26 10:19:01 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2023-09-26 10:19:02 +0200 <lortabac> the NeoHaskell repo has issues about implementing a debugger, making code auto-completion plugins and teaching event-sourcing
2023-09-26 10:19:12 +0200 <lortabac> these things are very different from each other
2023-09-26 10:19:18 +0200 <danse-nr3_> mine was a wasted comparison probably, NeoHaskell seems to be ... not a thing? https://github.com/neohaskell/NeoHaskell
2023-09-26 10:19:54 +0200 <danse-nr3_> i thought it was something with some traction ...
2023-09-26 10:19:54 +0200gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2023-09-26 10:20:55 +0200 <danse-nr3_> but well it has a shiny logo and a discord, so it will probably boom
2023-09-26 10:21:12 +0200 <Inst> it's vaporware right now
2023-09-26 10:21:41 +0200 <Inst> I'm still waiting on seeing if someone does it, but the core idea, even if NH is vaporware, or otherwise fails, will survive
2023-09-26 10:21:49 +0200 <Inst> production-oriented dialect capable of using the existing Haskell codebase
2023-09-26 10:22:10 +0200 <int-e> danse-nr3_: but does it have any crowd funding? if not... where's the grift...
2023-09-26 10:22:40 +0200 <danse-nr3_> maybe my irony did not pass through
2023-09-26 10:23:13 +0200 <int-e> Inst: it's called ghc ;-)
2023-09-26 10:23:38 +0200 <Inst> int-e: the founder of Cachix already said he'd help organize Hackathons if NeoHaskell become a thing
2023-09-26 10:23:52 +0200 <int-e> oh
2023-09-26 10:25:20 +0200 <danse-nr3_> int-e, what against crowd funding? How should any free software found itself better?
2023-09-26 10:25:48 +0200yoyofreeman(~yoyofreem@176.97.76.178) (Remote host closed the connection)
2023-09-26 10:25:55 +0200gentauro(~gentauro@user/gentauro)
2023-09-26 10:26:24 +0200 <int-e> danse-nr3_: I was specifically alluding to crowd-funding for vaporware.
2023-09-26 10:26:34 +0200 <danse-nr3_> i see
2023-09-26 10:26:53 +0200mc47(~mc47@xmonad/TheMC47)
2023-09-26 10:27:00 +0200swamp_(~zmt00@user/zmt00)
2023-09-26 10:30:07 +0200zmt01(~zmt00@user/zmt00) (Ping timeout: 258 seconds)
2023-09-26 10:33:30 +0200zmt01(~zmt00@user/zmt00)
2023-09-26 10:35:08 +0200 <probie> Will NeoHaskell have the `Foldable` typeclass?
2023-09-26 10:36:27 +0200 <Hecate> will NeoHaskell at all
2023-09-26 10:36:44 +0200swamp_(~zmt00@user/zmt00) (Ping timeout: 245 seconds)
2023-09-26 10:36:48 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b000:8eef:3ca4:f8cf)
2023-09-26 10:40:54 +0200 <probie> I may unreasonably hate `Foldable`, because to me it's less "foldable" and more "things that can sort of be treated as lists", but with 17 methods for you to overwrite
2023-09-26 10:43:32 +0200swamp_(~zmt00@user/zmt00)
2023-09-26 10:45:26 +0200mysl_(~mysl@user/mysl) (Ping timeout: 260 seconds)
2023-09-26 10:46:43 +0200zmt01(~zmt00@user/zmt00) (Ping timeout: 240 seconds)
2023-09-26 10:47:07 +0200 <danse-nr3_> you are right, ThingsThatCanSortOfBeTreatedAsLists would be a better name
2023-09-26 10:48:27 +0200CAT_S(apic@brezn3.muc.ccc.de) (Read error: Connection reset by peer)
2023-09-26 10:49:04 +0200nicosm(~nicosm@host98.181-4-190.telecom.net.ar) (Remote host closed the connection)
2023-09-26 10:49:31 +0200 <int-e> I'll assume that's a joke.
2023-09-26 10:49:45 +0200 <arahael> I'm waiting for it to fold.
2023-09-26 10:50:21 +0200 <opqdonut> Listoid
2023-09-26 10:50:30 +0200 <Rembane> Catamorphic
2023-09-26 10:50:56 +0200 <Rembane> The minimal complete definition for Foldable is rather small though, and you get a lot from it.
2023-09-26 10:51:10 +0200sm(~sm@plaintextaccounting/sm)
2023-09-26 10:51:44 +0200 <probie> Rembane: You mean `List-catamorphic` (which is my entire complaint)
2023-09-26 10:53:04 +0200 <int-e> I like the symmetric nature of Foldable.
2023-09-26 10:53:19 +0200dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net)
2023-09-26 10:53:40 +0200 <probie> Just give it one method `fold :: Monoid m => t m -> m` and avoid temptation to add more
2023-09-26 10:53:46 +0200 <int-e> (putting foldl and foldr on equal footing, overshadowed by fold)
2023-09-26 10:54:21 +0200 <mankyKitty> many monoids to rule them all and in the darkness, mempty
2023-09-26 10:54:26 +0200 <Rembane> int-e: It's a nice tree
2023-09-26 10:54:31 +0200 <Inst> yeah tbh I'm still waiting on NH to go from vaporware to at least MVP, and I think the MVP will be parts of an alt-prelude, so I'd rather prefer that some actual useful library comes out of it, probably the easy mobile dev part
2023-09-26 10:54:40 +0200 <Rembane> mankyKitty: I need that on a poster or a t-shirt
2023-09-26 10:55:05 +0200 <mankyKitty> Yes
2023-09-26 10:55:05 +0200 <Inst> as long as it's interoperable, even if the project dies, getting an easy mobile lib out of NeoHaskell is a win
2023-09-26 10:57:03 +0200 <arahael> I've never heard of neohaskell, but I notice there's a bunch of google hits for it - what's a good intro page about it?
2023-09-26 10:57:04 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-09-26 10:57:14 +0200misterfish(~misterfis@87.215.131.102)
2023-09-26 10:58:50 +0200Guest|64(~Guest|64@91.244.8.116) (Quit: Connection closed)
2023-09-26 10:59:31 +0200yoyofreeman(~yoyofreem@176.97.76.178)
2023-09-26 11:02:16 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-09-26 11:05:20 +0200CAT_S(apic@brezn3.muc.ccc.de)
2023-09-26 11:06:22 +0200nicosm(~nicosm@host98.181-4-190.telecom.net.ar)
2023-09-26 11:14:28 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-09-26 11:16:30 +0200acidjnk_new(~acidjnk@p200300d6e7072f72d8a1b9f6b31540dd.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2023-09-26 11:23:27 +0200Alex_test_(~al_test@178.34.161.180)
2023-09-26 11:24:05 +0200Alex_test(~al_test@178.34.161.180) (Read error: Connection reset by peer)
2023-09-26 11:28:17 +0200nicosm(~nicosm@host98.181-4-190.telecom.net.ar) (Remote host closed the connection)
2023-09-26 11:29:13 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-09-26 11:30:23 +0200glguy_(g@libera/staff/glguy)
2023-09-26 11:31:05 +0200glguy(g@libera/staff/glguy) (Read error: Connection reset by peer)
2023-09-26 11:31:26 +0200 <Inst> arahael: www.zombo.com
2023-09-26 11:31:27 +0200g(g@libera/staff/glguy) (Read error: Connection reset by peer)
2023-09-26 11:31:36 +0200 <arahael> THanks.
2023-09-26 11:31:55 +0200 <Inst> it's strictly a declaration of intent right now, it's vaporware
2023-09-26 11:31:58 +0200 <arahael> That just shows "zombo.com" in massive text?
2023-09-26 11:32:18 +0200 <Inst> zombo.com is an old joke, from the 90s era, it promises everything etc, but the website doesn't do anything
2023-09-26 11:32:38 +0200 <Inst> https://neohaskell.org
2023-09-26 11:32:52 +0200 <Inst> except spout "Everything is possible with Zombo.com!"
2023-09-26 11:33:11 +0200 <arahael> Inst: Where does it sprout that?
2023-09-26 11:33:42 +0200 <arahael> Still, looks intriguing. Hope it makes progress. :)
2023-09-26 11:33:45 +0200 <Inst> zombo.com should be back up right now, no?
2023-09-26 11:34:10 +0200 <Inst> https://html5zombo.com
2023-09-26 11:34:35 +0200g(g@libera/staff/glguy)
2023-09-26 11:34:45 +0200 <arahael> Is it perhaps audio?
2023-09-26 11:34:49 +0200yoyofreeman(~yoyofreem@176.97.76.178) (Remote host closed the connection)
2023-09-26 11:39:05 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2023-09-26 11:40:00 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de)
2023-09-26 11:44:01 +0200yoyofreeman(~yoyofreem@176.97.76.178)
2023-09-26 11:45:01 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2023-09-26 11:45:12 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de)
2023-09-26 11:46:37 +0200acidjnk_new(~acidjnk@p200300d6e7072f72b5b5426b148b82eb.dip0.t-ipconnect.de)
2023-09-26 11:49:43 +0200sm(~sm@plaintextaccounting/sm)
2023-09-26 11:52:13 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2023-09-26 11:52:55 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de)
2023-09-26 11:53:15 +0200 <Inst> ya, it is
2023-09-26 11:57:35 +0200nicosm(~nicosm@186.141.197.24)
2023-09-26 11:58:16 +0200ft(~ft@p3e9bc680.dip0.t-ipconnect.de) (Quit: leaving)
2023-09-26 12:08:09 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-09-26 12:08:22 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-09-26 12:08:24 +0200tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2023-09-26 12:09:47 +0200CiaoSen(~Jura@2a05:5800:2b7:400:664b:f0ff:fe37:9ef) (Ping timeout: 258 seconds)
2023-09-26 12:10:50 +0200yoyofreeman(~yoyofreem@176.97.76.178) (Read error: Connection reset by peer)
2023-09-26 12:13:08 +0200gensyst(~gensyst@user/gensyst)
2023-09-26 12:14:46 +0200 <gensyst> Hello, I want to create a "lazy structure" where fields start at Nothing and get computed on-demand. We don't have mutability in Haskell, so what to do?
2023-09-26 12:14:46 +0200 <gensyst> Here's how my current solution looks: https://dpaste.com/EN6DACM39 How could this be improved? Are there totally better ways? Are there libraries to make this easier?
2023-09-26 12:16:18 +0200 <gensyst> One drawback of course is, when getFoo is called, the user has to remember to grab the new LazyStructure and not keep around the old one. Pain, but with Haskell's immutability I see no way around this
2023-09-26 12:17:27 +0200Inst(~Inst@120.244.192.250) (Ping timeout: 258 seconds)
2023-09-26 12:22:21 +0200nicosm(~nicosm@186.141.197.24) (Ping timeout: 255 seconds)
2023-09-26 12:22:22 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2023-09-26 12:22:29 +0200 <gensyst> chatgpt found the answer... i'm getting a bit scared of this thing.
2023-09-26 12:22:37 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de)
2023-09-26 12:22:39 +0200 <gensyst> how... is... this... even....... possible.
2023-09-26 12:23:06 +0200nicosm(~nicosm@186.141.201.134)
2023-09-26 12:23:44 +0200 <probie> why do we need this indirection? What's wrong with `data LazyStructure = LazyStructure { foo :: Foo }`?
2023-09-26 12:25:09 +0200Inst(~Inst@120.244.192.250)
2023-09-26 12:28:12 +0200 <probie> without knowing the constraints you have, it's hard to know what is or isn't a good solution
2023-09-26 12:28:53 +0200 <gensyst> probie, but how then would I start it at Nothing? Hmmmmmm I guess I could just start it out at an "error "please compute first"" - is that what you had in mind?
2023-09-26 12:29:55 +0200 <probie> Why do you need to start it at `Nothing`?
2023-09-26 12:31:08 +0200 <probie> and why isn't "starts as an unevaluated thunk" equivalent?
2023-09-26 12:34:51 +0200 <gensyst> probie, how can I "case" on that? (perform computation if it's an "unevaluated thunk")
2023-09-26 12:35:37 +0200 <gensyst> hmmm, are you thinking of caching or something? Can record caching be fully relied on?
2023-09-26 12:35:38 +0200 <byorgey> gensyst: Haskell is already lazy, which means the fields of any data structure are computed only on demand.
2023-09-26 12:36:22 +0200 <gensyst> byorgey, ok but if they are requested again later, are we sure the computation won't be re-run? will it remain cached forever?
2023-09-26 12:36:36 +0200 <byorgey> gensyst: yes.
2023-09-26 12:36:43 +0200 <gensyst> hmmmmmmmm woah
2023-09-26 12:36:53 +0200 <gensyst> where's this documented?
2023-09-26 12:38:15 +0200danse-nr3__(~francesco@151.37.184.128)
2023-09-26 12:38:32 +0200danse-nr3_(~francesco@151.35.182.2) (Read error: Connection reset by peer)
2023-09-26 12:40:42 +0200 <byorgey> gensyst: there are lots of resources about laziness. I guess I would say to start by googling "haskell laziness".
2023-09-26 12:46:43 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2023-09-26 12:47:06 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de)
2023-09-26 12:57:09 +0200nicosm(~nicosm@186.141.201.134) (Remote host closed the connection)
2023-09-26 13:02:23 +0200nicosm(~nicosm@186.143.133.133)
2023-09-26 13:05:23 +0200nicosm(~nicosm@186.143.133.133) (Read error: Connection reset by peer)
2023-09-26 13:06:43 +0200nicosm(~nicosm@199.253.243.23)
2023-09-26 13:16:50 +0200Inst(~Inst@120.244.192.250) (Ping timeout: 244 seconds)
2023-09-26 13:20:46 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
2023-09-26 13:26:09 +0200 <gensyst> probie, byorgey is this what you had in mind? https://dpaste.com/93JBZ62VS
2023-09-26 13:26:15 +0200 <gensyst> Am I approaching this right?
2023-09-26 13:28:40 +0200 <gensyst> so yeah, the ability to do Either failure (or other MonadThrow failure I suppose), is what I want included in the solution.
2023-09-26 13:29:43 +0200danse-nr3__(~francesco@151.37.184.128) (Ping timeout: 264 seconds)
2023-09-26 13:34:50 +0200hiyori(~hiyori@user/hiyori) (Quit: Client closed)
2023-09-26 13:35:14 +0200Inst(~Inst@120.244.192.250)
2023-09-26 13:40:03 +0200danse-nr3__(~francesco@151.37.184.128)
2023-09-26 13:40:42 +0200sm(~sm@plaintextaccounting/sm)
2023-09-26 13:41:28 +0200 <gensyst> It's certainly more elegant than what I had before (and to avoid the errors would require e.g. dependent types I think), but I just want to confirm with you
2023-09-26 13:41:32 +0200 <gensyst> that I was on the right track.
2023-09-26 13:43:26 +0200 <jackdk> https://apfelmus.nfshost.com/articles/lazy-eval.html
2023-09-26 13:44:04 +0200NKpop(~NKpop@5.10.0.230)
2023-09-26 13:45:08 +0200 <[Leary]> gensyst: If you only want to store an uncomputed /pure value/ and be sure that the result is cached rather than repeated, Haskell's default lazy data types just do it. However, if you want to store /effectful/ computations and change them out for pure results, you have to play your own tricks.
2023-09-26 13:45:29 +0200 <[Leary]> I believe probie and byorgey are talking about the first case, but you want the latter.
2023-09-26 13:46:01 +0200bienjensu(~user@user/bienjensu) (Remote host closed the connection)
2023-09-26 13:46:12 +0200 <gensyst> [Leary], is my solution ok in your view? how would you do it?
2023-09-26 13:46:45 +0200 <[Leary]> You might want something like `data Lazy f = Lazy{ foo :: f Foo, bar :: f Bar }; runLazy :: Applicative f => Lazy f -> f (Lazy Identity)`.
2023-09-26 13:48:09 +0200TheCoffeMaker_(~TheCoffeM@201.235.1.143)
2023-09-26 13:48:48 +0200 <[Leary]> There are other tricks, like just using actual mutable references behind the scenes, but it depends on your actual needs, which are not clear.
2023-09-26 13:48:52 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 244 seconds)
2023-09-26 13:49:21 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-09-26 13:54:02 +0200nicosm(~nicosm@199.253.243.23) (Read error: Connection reset by peer)
2023-09-26 13:54:37 +0200nicosm(~nicosm@199.253.243.23)
2023-09-26 13:56:48 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-09-26 14:00:58 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2023-09-26 14:06:36 +0200arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 248 seconds)
2023-09-26 14:08:48 +0200NKpop(~NKpop@5.10.0.230) (Quit: Client closed)
2023-09-26 14:11:05 +0200haritz(~hrtz@user/haritz) (Ping timeout: 240 seconds)
2023-09-26 14:13:57 +0200haritz(~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk)
2023-09-26 14:15:40 +0200haritz(~hrtz@82-69-11-11.dsl.in-addr.zen.co.uk) (Changing host)
2023-09-26 14:15:40 +0200haritz(~hrtz@user/haritz)
2023-09-26 14:15:58 +0200gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2023-09-26 14:20:00 +0200hiyori(~hiyori@user/hiyori)
2023-09-26 14:28:08 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2023-09-26 14:28:36 +0200NKpop(~NKpop@5.10.0.230)
2023-09-26 14:43:34 +0200son0p(~ff@181.136.122.143) (Quit: Bye)
2023-09-26 14:43:46 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-09-26 14:48:52 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de) (Ping timeout: 258 seconds)
2023-09-26 14:53:01 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de)
2023-09-26 14:53:44 +0200NKpop(~NKpop@5.10.0.230) (Quit: Client closed)
2023-09-26 14:57:38 +0200nicosm(~nicosm@199.253.243.23) (Read error: Connection reset by peer)
2023-09-26 14:58:42 +0200Guest|32(~Guest|32@105.157.150.108)
2023-09-26 14:58:47 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-09-26 14:58:56 +0200nicosm(~nicosm@199.253.243.23)
2023-09-26 15:00:30 +0200Guest|32(~Guest|32@105.157.150.108) (Client Quit)
2023-09-26 15:01:07 +0200son0p(~ff@181.136.122.143)
2023-09-26 15:03:25 +0200Inst_(~Inst@120.244.192.250)
2023-09-26 15:04:31 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2023-09-26 15:05:24 +0200Inst(~Inst@120.244.192.250) (Ping timeout: 240 seconds)
2023-09-26 15:07:57 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-09-26 15:07:57 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-09-26 15:07:57 +0200wroathe(~wroathe@user/wroathe)
2023-09-26 15:09:13 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 240 seconds)
2023-09-26 15:10:23 +0200ddellacosta(~ddellacos@ool-44c738de.dyn.optonline.net)
2023-09-26 15:13:13 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2023-09-26 15:14:05 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 240 seconds)
2023-09-26 15:22:48 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-09-26 15:23:53 +0200 <danse-nr3__> two haskell-related jobs: functional.works-hub.com/jobs/remote-blockchain-haskell-slash-plutus-developer-c19 and indeed.com/viewjob?jk=d87f6b61a014fe16 (purescript)
2023-09-26 15:24:01 +0200ystael(~ystael@user/ystael)
2023-09-26 15:25:18 +0200sm(~sm@plaintextaccounting/sm)
2023-09-26 15:27:24 +0200bontaq(~user@ool-45707d2c.dyn.optonline.net)
2023-09-26 15:31:52 +0200 <haskellbridge> <e​ldritchcookie> hello i am rewriting compdata and in the cool version we use Functor transformers which take a functor and give you a new functor and i wanted to make a HGeneric1 typeclass how could i do that?
2023-09-26 15:43:31 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2023-09-26 15:45:13 +0200waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
2023-09-26 15:45:39 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-09-26 15:48:32 +0200xff0x(~xff0x@2405:6580:b080:900:db99:9da1:fa4d:eaa1) (Ping timeout: 255 seconds)
2023-09-26 15:50:16 +0200xff0x(~xff0x@178.255.149.135)
2023-09-26 15:51:32 +0200gehmehgeh(~user@user/gehmehgeh)
2023-09-26 15:54:48 +0200gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com)
2023-09-26 15:57:56 +0200gatekempt(~gatekempt@user/gatekempt)
2023-09-26 16:00:56 +0200 <danse-nr3__> sorry i am not familiar with functor transformers and HGeneric1
2023-09-26 16:01:14 +0200Lycurgus(~juan@user/Lycurgus)
2023-09-26 16:01:43 +0200gatekempt(~gatekempt@user/gatekempt) (Client Quit)
2023-09-26 16:01:56 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com)
2023-09-26 16:02:17 +0200 <Lycurgus> so there's mattermost hs channels now?
2023-09-26 16:02:39 +0200chomwitt(~chomwitt@2a02:587:7a24:b000:1ac0:4dff:fedb:a3f1)
2023-09-26 16:04:08 +0200 <Lycurgus> inevitable igess iirc it is implemented in hs
2023-09-26 16:04:18 +0200gatekempt(~gatekempt@user/gatekempt)
2023-09-26 16:04:23 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de)
2023-09-26 16:08:53 +0200xff0x(~xff0x@178.255.149.135) (Ping timeout: 252 seconds)
2023-09-26 16:09:12 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2023-09-26 16:10:29 +0200xff0x(~xff0x@2405:6580:b080:900:db99:9da1:fa4d:eaa1)
2023-09-26 16:11:48 +0200waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
2023-09-26 16:15:03 +0200califax(~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
2023-09-26 16:16:25 +0200Lycurgus(~juan@user/Lycurgus) (Quit: Tschüss)
2023-09-26 16:19:49 +0200Inst_(~Inst@120.244.192.250) (Remote host closed the connection)
2023-09-26 16:20:12 +0200Inst_(~Inst@120.244.192.250)
2023-09-26 16:21:31 +0200gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2023-09-26 16:22:01 +0200hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 258 seconds)
2023-09-26 16:22:56 +0200califax(~califax@user/califx)
2023-09-26 16:23:27 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de)
2023-09-26 16:28:58 +0200glguy_glguy
2023-09-26 16:29:21 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-09-26 16:32:15 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2023-09-26 16:34:20 +0200hugo-(znc@verdigris.lysator.liu.se)
2023-09-26 16:36:43 +0200stites(~stites@130.44.147.204) (Ping timeout: 240 seconds)
2023-09-26 16:37:21 +0200stites(~stites@2607:fb91:de1:62b2:b61c:7e5d:306:dc11)
2023-09-26 16:37:50 +0200haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com) (Remote host closed the connection)
2023-09-26 16:38:33 +0200danse-nr3_(~francesco@151.37.174.231)
2023-09-26 16:38:55 +0200haskellbridge(~haskellbr@069-135-003-034.biz.spectrum.com)
2023-09-26 16:40:58 +0200danse-nr3__(~francesco@151.37.184.128) (Ping timeout: 252 seconds)
2023-09-26 16:41:44 +0200hugo-(znc@verdigris.lysator.liu.se) (Ping timeout: 245 seconds)
2023-09-26 16:42:48 +0200nicosm(~nicosm@199.253.243.23) (Remote host closed the connection)
2023-09-26 16:43:36 +0200Katarushisu1(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: Ping timeout (120 seconds))
2023-09-26 16:43:55 +0200Katarushisu1(~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
2023-09-26 16:45:42 +0200chomwitt(~chomwitt@2a02:587:7a24:b000:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
2023-09-26 16:47:19 +0200danse-nr3_(~francesco@151.37.174.231) (Ping timeout: 258 seconds)
2023-09-26 16:49:42 +0200hugo-(znc@verdigris.lysator.liu.se)
2023-09-26 16:55:48 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-09-26 16:58:35 +0200AlexNoo_(~AlexNoo@178.34.161.162)
2023-09-26 16:58:44 +0200misterfish(~misterfis@87.215.131.102) (Ping timeout: 255 seconds)
2023-09-26 17:00:13 +0200Alex_test_(~al_test@178.34.161.180) (Ping timeout: 252 seconds)
2023-09-26 17:01:27 +0200AlexZenon(~alzenon@178.34.161.180) (Ping timeout: 240 seconds)
2023-09-26 17:01:35 +0200AlexNoo(~AlexNoo@178.34.161.180) (Ping timeout: 244 seconds)
2023-09-26 17:02:01 +0200AlexNoo_AlexNoo
2023-09-26 17:03:13 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 240 seconds)
2023-09-26 17:04:44 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2023-09-26 17:06:03 +0200AlexZenon(~alzenon@178.34.161.162)
2023-09-26 17:06:45 +0200stites(~stites@2607:fb91:de1:62b2:b61c:7e5d:306:dc11) (Read error: Connection reset by peer)
2023-09-26 17:07:04 +0200Alex_test(~al_test@178.34.161.162)
2023-09-26 17:07:06 +0200stites(~stites@130.44.147.204)
2023-09-26 17:08:29 +0200Square3(~Square4@user/square) (Quit: Leaving)
2023-09-26 17:09:00 +0200Square3(~Square4@user/square)
2023-09-26 17:09:29 +0200 <EvanR> am I lensing right... onIso2 f x y = withIso g where g to from = from (f (to x) (to y))
2023-09-26 17:10:00 +0200 <EvanR> AnIso' a b => (b -> b -> b) -> a -> a -> a
2023-09-26 17:11:35 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:b7bb:c936:d84d:659c) (Quit: WeeChat 2.8)
2023-09-26 17:11:51 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
2023-09-26 17:12:32 +0200sm(~sm@plaintextaccounting/sm)
2023-09-26 17:12:51 +0200hugo-hugo
2023-09-26 17:13:02 +0200sm(~sm@plaintextaccounting/sm) (Client Quit)
2023-09-26 17:13:24 +0200Square3(~Square4@user/square) (Ping timeout: 245 seconds)
2023-09-26 17:13:45 +0200sm(~sm@plaintextaccounting/sm)
2023-09-26 17:15:13 +0200sm(~sm@plaintextaccounting/sm) (Remote host closed the connection)
2023-09-26 17:15:52 +0200sm(~sm@plaintextaccounting/sm)
2023-09-26 17:15:54 +0200AlexZenon(~alzenon@178.34.161.162) (Ping timeout: 245 seconds)
2023-09-26 17:21:56 +0200AlexZenon(~alzenon@178.34.161.162)
2023-09-26 17:23:07 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-09-26 17:23:39 +0200gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com)
2023-09-26 17:25:27 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2023-09-26 17:29:29 +0200 <ncf> AnIso' isn't a typeclass is it
2023-09-26 17:30:29 +0200 <[exa]> ncf: looks to me like a multiparameter one
2023-09-26 17:31:15 +0200 <ncf> ?
2023-09-26 17:31:30 +0200 <ncf> type AnIso s t a b = Exchange a b a (Identity b) -> Exchange a b s (Identity t)
2023-09-26 17:32:59 +0200 <[exa]> ok whew how did that go in front of => ?
2023-09-26 17:33:26 +0200gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2023-09-26 17:33:29 +0200 <geekosaur> note the tick
2023-09-26 17:34:04 +0200 <[exa]> it expands to AnIso which expands to Exchange (which is data)
2023-09-26 17:34:13 +0200 <[exa]> as far as I can haddoc
2023-09-26 17:34:45 +0200gensyst(~gensyst@user/gensyst) (Quit: Leaving)
2023-09-26 17:35:40 +0200 <geekosaur> yeh, I just hoogled
2023-09-26 17:35:42 +0200sm(~sm@plaintextaccounting/sm)
2023-09-26 17:36:42 +0200 <[exa]> maybe the => from Evan ain't an =>
2023-09-26 17:37:02 +0200 <ncf> onIso2 l f = withIso l g where g to from x y = from (f (to x) (to y))
2023-09-26 17:37:06 +0200 <ncf> onIso2 :: AnIso s t a b -> (a -> a -> b) -> s -> s -> t
2023-09-26 17:37:38 +0200 <ncf> you can push the f inside as well i guess
2023-09-26 17:37:51 +0200 <EvanR> alright, yeah
2023-09-26 17:38:31 +0200 <EvanR> I was hoping to trick you into putting the 3 character operator which already does this xD
2023-09-26 17:39:36 +0200 <EvanR> Exchange is data, ok
2023-09-26 17:41:39 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-09-26 17:45:12 +0200hiyori(~hiyori@user/hiyori) (Quit: Client closed)
2023-09-26 17:48:07 +0200danse-nr3(~francesco@151.37.174.231)
2023-09-26 17:48:18 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-09-26 17:50:46 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b000:8eef:3ca4:f8cf) (Remote host closed the connection)
2023-09-26 17:51:08 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b000:8eef:3ca4:f8cf)
2023-09-26 17:57:15 +0200liamzy__(~Inst@120.244.192.250)
2023-09-26 17:58:56 +0200chele(~chele@user/chele) (Remote host closed the connection)
2023-09-26 17:59:37 +0200Inst_(~Inst@120.244.192.250) (Ping timeout: 252 seconds)
2023-09-26 18:08:25 +0200 <EvanR> I made this thing which builds shapes from two primitives and moves, operating on clockwise line segments. The merge operation should require operands be disjoint and minus operation should require operands form a containment. But checking for that seems harder https://paste.tomsmeding.com/6gebgRgk
2023-09-26 18:13:23 +0200alphacentauri(alphacenta@gateway/vpn/protonvpn/alphacentauri) (Quit: WeeChat 4.0.5)
2023-09-26 18:15:16 +0200alphacentauri(alphacenta@gateway/vpn/protonvpn/alphacentauri)
2023-09-26 18:16:07 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b000:8eef:3ca4:f8cf) (Remote host closed the connection)
2023-09-26 18:16:12 +0200 <EvanR> there might be more algebraic nonsense to explain how it works. Each possible segment location is an index, and the shape is a container mapping indexes to Bool, or -1 0 +1 if you have counterclockwise shapes. The disjoint / containment conditions are enough to guarantee segwise adding the values don't go out of range
2023-09-26 18:16:44 +0200 <EvanR> and since this picture has no geometric value, it explains why I can't check for disjointness or containment lol
2023-09-26 18:21:18 +0200infinity0(~infinity0@pwned.gg) (Remote host closed the connection)
2023-09-26 18:23:29 +0200infinity0(~infinity0@pwned.gg)
2023-09-26 18:25:02 +0200sm(~sm@plaintextaccounting/sm)
2023-09-26 18:26:53 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b000:8eef:3ca4:f8cf)
2023-09-26 18:28:21 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2023-09-26 18:30:47 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 252 seconds)
2023-09-26 18:31:04 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-09-26 18:31:31 +0200gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 252 seconds)
2023-09-26 18:31:31 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Ping timeout: 252 seconds)
2023-09-26 18:31:53 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds)
2023-09-26 18:32:09 +0200 <haskellbridge> <e​ldritchcookie> https://play.haskell.org/saved/M1XH0KDu can anyone explain why the Applicative/Functor force the role to be representional as the Functor instance means we can fmap coerce?
2023-09-26 18:32:15 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 252 seconds)
2023-09-26 18:32:25 +0200 <haskellbridge> <e​ldritchcookie> doesn't force the role to be
2023-09-26 18:32:36 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2023-09-26 18:33:40 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2023-09-26 18:33:53 +0200gehmehgeh(~user@user/gehmehgeh)
2023-09-26 18:34:05 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2023-09-26 18:35:15 +0200tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2023-09-26 18:40:36 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2023-09-26 18:43:00 +0200euleritian(~euleritia@ip4d16fc12.dynamic.kabel-deutschland.de)
2023-09-26 18:51:16 +0200sabino(~sabino@user/sabino)
2023-09-26 18:54:34 +0200vglfr(~vglfr@cli-188-239-233-89.bbn.slav.dn.ua) (Read error: Connection reset by peer)
2023-09-26 18:54:54 +0200vglfr(vglfr@gateway/vpn/protonvpn/vglfr)
2023-09-26 19:00:08 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-09-26 19:00:09 +0200wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-09-26 19:00:09 +0200wroathe(~wroathe@user/wroathe)
2023-09-26 19:00:13 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2023-09-26 19:00:34 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-09-26 19:03:44 +0200AlexNoo_(~AlexNoo@178.34.161.162)
2023-09-26 19:03:47 +0200vglfr(vglfr@gateway/vpn/protonvpn/vglfr) (Ping timeout: 258 seconds)
2023-09-26 19:04:39 +0200vglfr(~vglfr@cli-188-239-233-89.bbn.slav.dn.ua)
2023-09-26 19:05:13 +0200Alex_test(~al_test@178.34.161.162) (Ping timeout: 240 seconds)
2023-09-26 19:05:38 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
2023-09-26 19:06:51 +0200AlexZenon(~alzenon@178.34.161.162) (Ping timeout: 258 seconds)
2023-09-26 19:06:51 +0200danse-nr3(~francesco@151.37.174.231) (Ping timeout: 258 seconds)
2023-09-26 19:06:55 +0200AlexNoo(~AlexNoo@178.34.161.162) (Ping timeout: 264 seconds)
2023-09-26 19:07:14 +0200AlexNoo_AlexNoo
2023-09-26 19:11:07 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 252 seconds)
2023-09-26 19:11:45 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2023-09-26 19:11:47 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 244 seconds)
2023-09-26 19:13:51 +0200michalz(~michalz@185.246.207.203) (Ping timeout: 244 seconds)
2023-09-26 19:16:14 +0200michalz(~michalz@185.246.204.105)
2023-09-26 19:16:28 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-09-26 19:24:12 +0200Alex_test(~al_test@178.34.161.162)
2023-09-26 19:25:37 +0200sabino(~sabino@user/sabino) (Quit: Lambda _ -> x)
2023-09-26 19:28:08 +0200AlexZenon(~alzenon@178.34.161.162)
2023-09-26 19:29:22 +0200marinelli(~weechat@gateway/tor-sasl/marinelli)
2023-09-26 19:32:08 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-09-26 19:33:18 +0200liamzy__(~Inst@120.244.192.250) (Ping timeout: 258 seconds)
2023-09-26 19:50:03 +0200qqq(~qqq@92.43.167.61)
2023-09-26 19:56:40 +0200danza(~francesco@151.37.174.231)
2023-09-26 19:57:59 +0200Inst(~Inst@120.244.192.250)
2023-09-26 19:59:05 +0200 <Inst> ironically, I think NeoHaskell is way more Haskelly than the founder might seem.
2023-09-26 19:59:37 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-09-26 19:59:39 +0200 <Inst> Because we're in a post-Python language, and I think it's posing interesting research problems.
2023-09-26 20:00:04 +0200sm(~sm@plaintextaccounting/sm)
2023-09-26 20:00:11 +0200 <Inst> For instance, is it possible to design the norms of a library ecosystem through the language?
2023-09-26 20:00:35 +0200 <Inst> What should a library ecosystem look like? How should the libraries play with each other?
2023-09-26 20:00:41 +0200 <Inst> I mean, there's backpack these days.
2023-09-26 20:01:12 +0200 <Inst> For questions like these, I sort of wish we could raise Hudak and Bird back from the dead.
2023-09-26 20:01:40 +0200 <Inst> But of course, NH has to be non-vaporware first.
2023-09-26 20:01:51 +0200 <EvanR> backpack? there is?
2023-09-26 20:02:09 +0200 <Inst> I mean the language could be designed for mixins?
2023-09-26 20:02:22 +0200 <Inst> Also, an interesting point, for instance, I think cabal scripts / headesr were brought up here recently?
2023-09-26 20:03:05 +0200 <Inst> WWith cabal scripts / headers, what you're seeing is that the build instructions are now in the source code, as opposed to a separate manifest.
2023-09-26 20:03:15 +0200 <EvanR> last I heard backpack is struggling to survive
2023-09-26 20:03:20 +0200 <Inst> ughhhhhhhhhhhh
2023-09-26 20:03:26 +0200 <EvanR> because no one is working on it
2023-09-26 20:03:34 +0200 <Inst> uggggggggggggggggghhhhhhhhhhhhhhh
2023-09-26 20:03:59 +0200 <EvanR> were you relying on it for something?
2023-09-26 20:04:14 +0200 <Inst> not really, but parts of the Haskell ecosystem dying really upset me
2023-09-26 20:06:08 +0200 <Inst> What's potentially going on is more interesting than just dipping Haskell in hipster again.
2023-09-26 20:06:54 +0200 <EvanR> yeah not sure it was ever part of the ecosystem
2023-09-26 20:07:05 +0200 <EvanR> interesting ideas though
2023-09-26 20:07:27 +0200 <Inst> I think the only time I've seen it used is tasty-bench telling you this ca nbe a mixin dropin for criterion
2023-09-26 20:08:26 +0200billchenchina(~billchenc@2a0c:b641:7a2:320:ee3e:47ca:6070:d71a) (Read error: Connection reset by peer)
2023-09-26 20:08:26 +0200 <EvanR> what's a mixin
2023-09-26 20:08:50 +0200 <geekosaur> the publicly visible aspect of backpack
2023-09-26 20:09:53 +0200 <geekosaur> https://cabal.readthedocs.io/en/3.8/cabal-package.html#pkg-field-mixins
2023-09-26 20:10:03 +0200 <EvanR> oh man, so it's usable
2023-09-26 20:10:51 +0200 <geekosaur> the main reason it never really caught on, aiui, is that stack has never supported it
2023-09-26 20:14:45 +0200 <monochrom> :(
2023-09-26 20:14:58 +0200sabino(~sabino@user/sabino)
2023-09-26 20:15:47 +0200 <geekosaur> anyway this is not the first time a feature has gone away and we have survived. See DPH for instance
2023-09-26 20:15:48 +0200 <monochrom> Actually my feeling is that it arrived too late. The problem it solves, people found workarounds and sidestepped it.
2023-09-26 20:16:01 +0200chiselfuse(~chiselfus@user/chiselfuse) (Ping timeout: 252 seconds)
2023-09-26 20:16:02 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-09-26 20:18:12 +0200chiselfuse(~chiselfus@user/chiselfuse)
2023-09-26 20:22:35 +0200nicosm(~nicosm@199.253.243.23)
2023-09-26 20:22:36 +0200Pickchea(~private@user/pickchea)
2023-09-26 20:29:32 +0200danza(~francesco@151.37.174.231) (Ping timeout: 248 seconds)
2023-09-26 20:31:18 +0200 <sm> it was a ton of unfinished complexity that almost no real world users had appetite for
2023-09-26 20:31:51 +0200 <sm> we were all fully stretched just dealing with ordinary builds and tool issues
2023-09-26 20:32:48 +0200 <sm> we may have learned from that it should a language feature, not a tool feature
2023-09-26 20:33:03 +0200 <sm> should be
2023-09-26 20:33:25 +0200infinity0_(~infinity0@pwned.gg)
2023-09-26 20:33:27 +0200infinity0(~infinity0@pwned.gg) (Killed (mercury.libera.chat (Nickname regained by services)))
2023-09-26 20:33:27 +0200infinity0_infinity0
2023-09-26 20:59:38 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2023-09-26 20:59:52 +0200nicosm(~nicosm@199.253.243.23) (Remote host closed the connection)
2023-09-26 21:06:45 +0200fweht(uid404746@id-404746.lymington.irccloud.com)
2023-09-26 21:26:02 +0200nicosm(~nicosm@199.253.243.23)
2023-09-26 21:29:53 +0200michalz(~michalz@185.246.204.105) (Remote host closed the connection)
2023-09-26 21:37:40 +0200Inst(~Inst@120.244.192.250) (Ping timeout: 255 seconds)
2023-09-26 21:43:57 +0200dhil(~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 255 seconds)
2023-09-26 21:49:32 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:b000:8eef:3ca4:f8cf) (Remote host closed the connection)
2023-09-26 21:50:16 +0200nicosm(~nicosm@199.253.243.23) (Remote host closed the connection)
2023-09-26 21:50:19 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-09-26 21:52:06 +0200 <remexre> Is there a way for TH code to declare a dependency on a file (or directory), so that changes to it cause the code to be rebuilt, a la Rust's println!("cargo:rerun-if-changed=some/path/here");
2023-09-26 21:53:09 +0200 <remexre> oops nvm found it
2023-09-26 21:53:16 +0200ft(~ft@p3e9bc680.dip0.t-ipconnect.de)
2023-09-26 21:54:44 +0200 <mauke> what is it?
2023-09-26 21:56:05 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-09-26 21:56:07 +0200xff0x(~xff0x@2405:6580:b080:900:db99:9da1:fa4d:eaa1) (Ping timeout: 252 seconds)
2023-09-26 21:56:13 +0200 <remexre> https://hackage.haskell.org/package/template-haskell-2.20.0.0/docs/Language-Haskell-TH-Syntax.html…
2023-09-26 21:56:54 +0200 <EvanR> who needs makefiles just use TH
2023-09-26 21:57:23 +0200 <mauke> ah, nice
2023-09-26 22:01:32 +0200 <remexre> oh hrm, that doesn't exist in the version shipped with GHC 9.2?
2023-09-26 22:02:13 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:4c65:eb77:1036:3039)
2023-09-26 22:02:19 +0200 <remexre> oh, it's just not exported by Language.Haskell.TH then
2023-09-26 22:04:06 +0200Jackneill(~Jackneill@20014C4E1E0E9600C465D2876F556952.dsl.pool.telekom.hu)
2023-09-26 22:06:33 +0200nicosm(~nicosm@186.141.202.218)
2023-09-26 22:08:22 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2023-09-26 22:08:29 +0200vglfr(~vglfr@cli-188-239-233-89.bbn.slav.dn.ua) (Ping timeout: 244 seconds)
2023-09-26 22:12:59 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
2023-09-26 22:20:43 +0200nicosm(~nicosm@186.141.202.218) (Remote host closed the connection)
2023-09-26 22:21:19 +0200nicosm(~nicosm@186.141.197.238)
2023-09-26 22:28:56 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:4c65:eb77:1036:3039) (Remote host closed the connection)
2023-09-26 22:29:35 +0200coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-09-26 22:31:57 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2023-09-26 22:32:02 +0200vglfr(~vglfr@cli-188-239-233-89.bbn.slav.dn.ua)
2023-09-26 22:37:04 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
2023-09-26 22:39:51 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-09-26 22:47:14 +0200sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-09-26 22:48:48 +0200acidjnk_new(~acidjnk@p200300d6e7072f72b5b5426b148b82eb.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2023-09-26 22:55:10 +0200sm(~sm@plaintextaccounting/sm)
2023-09-26 22:56:28 +0200sm(~sm@plaintextaccounting/sm) (Client Quit)
2023-09-26 22:58:34 +0200gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com)
2023-09-26 23:02:05 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-09-26 23:06:35 +0200nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2023-09-26 23:08:13 +0200gooba_(~gooba@90-231-13-185-no3430.tbcn.telia.com)
2023-09-26 23:08:19 +0200gooba_(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Remote host closed the connection)
2023-09-26 23:08:20 +0200gooba(~gooba@90-231-13-185-no3430.tbcn.telia.com) (Quit: Leaving)
2023-09-26 23:10:29 +0200stites(~stites@130.44.147.204) (Ping timeout: 244 seconds)
2023-09-26 23:11:21 +0200stites(~stites@2607:fb91:de1:9391:7358:247e:7bab:59ae)
2023-09-26 23:16:34 +0200RedFlamingos(~RedFlamin@user/RedFlamingos) (Remote host closed the connection)
2023-09-26 23:18:21 +0200nicosm(~nicosm@186.141.197.238) (Remote host closed the connection)
2023-09-26 23:21:28 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-09-26 23:24:55 +0200eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2023-09-26 23:30:30 +0200gatekempt(~gatekempt@user/gatekempt) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2023-09-26 23:35:20 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2023-09-26 23:42:21 +0200eggplantade(~Eggplanta@2600:1700:38c5:d800:80a2:2128:a9a7:36f7)
2023-09-26 23:42:55 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2023-09-26 23:53:51 +0200raym(~ray@user/raym) (Ping timeout: 240 seconds)
2023-09-26 23:55:10 +0200raym(~ray@user/raym)
2023-09-26 23:57:57 +0200stites(~stites@2607:fb91:de1:9391:7358:247e:7bab:59ae) (Read error: Connection reset by peer)
2023-09-26 23:58:17 +0200stites(~stites@130.44.147.204)
2023-09-26 23:58:19 +0200cyphase(~cyphase@user/cyphase) (Read error: Connection reset by peer)