2025/01/31

Newest at the top

2025-01-31 17:00:39 +0100GoldsteinQ(~goldstein@goldstein.rs) (Quit: ZNC 1.8.2 - https://znc.in)
2025-01-31 16:57:50 +0100 <ski> slack1256 : constraint synonyms ?
2025-01-31 16:54:42 +0100acidjnk_new3(~acidjnk@p200300d6e7283f83edaedff6126e1841.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2025-01-31 16:53:05 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-01-31 16:49:18 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2025-01-31 16:46:28 +0100GoldsteinQ(~goldstein@goldstein.rs)
2025-01-31 16:46:20 +0100ystael(~ystael@user/ystael) ystael
2025-01-31 16:45:18 +0100vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2025-01-31 16:44:24 +0100ystael_(~ystael@user/ystael) (Quit: Lost terminal)
2025-01-31 16:43:05 +0100GoldsteinQ(~goldstein@goldstein.rs) (Quit: ZNC 1.8.2 - https://znc.in)
2025-01-31 16:41:24 +0100hueso(~root@user/hueso) hueso
2025-01-31 16:39:15 +0100hueso(~root@user/hueso) (Quit: No Ping reply in 180 seconds.)
2025-01-31 16:37:08 +0100Guest37(~Guest62@c-73-217-79-154.hsd1.co.comcast.net)
2025-01-31 16:36:57 +0100vektor(~vektor@IP-149249154134.pools.medianet-world.de)
2025-01-31 16:36:50 +0100 <dminuoso> Hard to imagine why there would be more than one.
2025-01-31 16:36:37 +0100 <dminuoso> slack1256: Again, hard to say without knowing more about your code - but ideally there wouldnt be many places where you resolve effects.
2025-01-31 16:36:30 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2025-01-31 16:36:04 +0100 <slack1256> dminuoso: "Resolve them coherently" is the problem, I have to do it by hand instaed of using typeclasses. I have to duplicate the callers of those functions, the different constraints bubble up. If I could abstract over implicit parameters with classes I could delegate this to the compiler to choose the right calling convention.
2025-01-31 16:34:08 +0100 <dminuoso> It's certainly not ideal, but no migration ever was.
2025-01-31 16:33:46 +0100 <dminuoso> So some parts just use the effect, others use implicit params.
2025-01-31 16:33:28 +0100 <dminuoso> slack1256: That said, Im not entirely sure you need any partial solution here. During migration you can also just have *both* some effect and an implicit parameter, just make sure you resolve them coherently until the implicit params are gone.
2025-01-31 16:33:15 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 252 seconds)
2025-01-31 16:30:13 +0100 <geekosaur> and they break reasoning about code
2025-01-31 16:29:59 +0100 <geekosaur> I don't think I've ever seen a use for implicit params that waasn't better served some other way
2025-01-31 16:29:44 +0100 <geekosaur> tbh if you're using an effect system, its state abstraction is an IORef (because effect systems are fancy ReaderT, more or less) and switching to that is the saner option than implicit params anyway
2025-01-31 16:29:04 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-31 16:28:57 +0100 <dminuoso> slack1256: Its hard to tell without a bit more context, unsure whether the example is contrived or whether this is truly just about database connection strings
2025-01-31 16:27:02 +0100 <slack1256> dminuoso: too much code already uses it on the codebase. We are in a middle of a sprint and other developers are making changes to their own modules. Changing them all in a big PR would cause a lot of conflicts when trying to merge.
2025-01-31 16:24:51 +0100 <dminuoso> slack1256: The thing I dont quite understand, are you not trying to migrate away from implicit parameters?
2025-01-31 16:22:42 +0100 <slack1256> https://pastebin.com/zX9KcNQu dminuoso
2025-01-31 16:18:12 +0100euleritian(~euleritia@dynamic-176-006-142-115.176.6.pool.telefonica.de)
2025-01-31 16:17:51 +0100euleritian(~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2025-01-31 16:16:48 +0100 <geekosaur> "You can’t have an implicit parameter in the context of a class or instance declaration." (https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/implicit_parameters.html#implicit-p…)
2025-01-31 16:16:38 +0100zmt01(~zmt00@user/zmt00) (Ping timeout: 244 seconds)
2025-01-31 16:15:29 +0100swamp_(~zmt00@user/zmt00) (Ping timeout: 260 seconds)
2025-01-31 16:15:10 +0100 <slack1256> dminuoso: Sure, give me a moment.
2025-01-31 16:14:32 +0100 <dminuoso> slack1256: Can you elaborate on "Implicit parameter resist being constraints on instance heads, so I cannot define classes to have two versions of each function", perhaps with a code example?
2025-01-31 16:13:03 +0100johnjaye(~pi@syn-035-146-235-019.res.spectrum.com) (Quit: WeeChat 4.0.0-dev)
2025-01-31 16:12:56 +0100 <slack1256> stract over implicit parameters?
2025-01-31 16:12:56 +0100 <slack1256> I have a codebase that uses implicit parameters with mutable variables (think queues). I want to migrate to effectful. The migration is happening all at once, I create a static effect per implicit parameter and I create a function like `withDB` to scope the blocks that require that parameter. Implicit parameter resist being constraints on instance heads, so I cannot define classes to have two versions of each function. What alternatives do I have to ab
2025-01-31 16:12:19 +0100zmt01(~zmt00@user/zmt00) zmt00
2025-01-31 16:07:27 +0100slack1256(~slack1256@179.60.70.224) slack1256
2025-01-31 16:06:34 +0100Putonlalla(~Putonlall@it-cyan.it.jyu.fi) (Quit: Leaving.)
2025-01-31 16:04:47 +0100Guest33(~Guest33@151.73.135.114) (Client Quit)
2025-01-31 16:04:19 +0100Guest33(~Guest33@151.73.135.114)
2025-01-31 15:54:07 +0100alexherbo2(~alexherbo@2a02-8440-3504-8116-8987-9b89-16c5-ba01.rev.sfr.net) (Remote host closed the connection)
2025-01-31 15:44:10 +0100alfiee(~alfiee@user/alfiee) (Ping timeout: 272 seconds)
2025-01-31 15:42:17 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2025-01-31 15:39:38 +0100alfiee(~alfiee@user/alfiee) alfiee
2025-01-31 15:39:21 +0100alp(~alp@2001:861:8ca0:4940:54fd:6cb8:585b:9cc) (Ping timeout: 252 seconds)