Newest at the top
| 2026-05-24 10:09:55 +0000 | Alex_delenda_est | (~al_test@5.139.233.99) (Ping timeout: 264 seconds) |
| 2026-05-24 10:09:00 +0000 | AlexZenon | (~alzenon@5.139.233.99) (Ping timeout: 244 seconds) |
| 2026-05-24 10:05:18 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-05-24 10:05:05 +0000 | <tomsmeding> | fun: Claude Opus cannot explain why the little reproducer fails, even when given access to GHC to test stuff. It concludes that it's a known limitation of GHC. |
| 2026-05-24 09:58:42 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-05-24 09:56:50 +0000 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-05-24 09:54:54 +0000 | DetourNe- | DetourNetworkUK |
| 2026-05-24 09:52:52 +0000 | DetourNetworkUK | (~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 2026-05-24 09:52:50 +0000 | <tomsmeding> | fun, this is _very_ hard to spot if you're not aware of how the kind system works precisely |
| 2026-05-24 09:52:45 +0000 | <Noinia> | Thanks for the help! :) |
| 2026-05-24 09:52:38 +0000 | DetourNe- | (~DetourNet@user/DetourNetworkUK) DetourNetworkUK |
| 2026-05-24 09:52:21 +0000 | <tomsmeding> | Noinia: that seems like the correct solution, yes |
| 2026-05-24 09:52:11 +0000 | <Noinia> | (i.e. restricting the Svg type signature to kind Type) |
| 2026-05-24 09:52:09 +0000 | AlexNoo | (~AlexNoo@5.139.233.99) (Ping timeout: 246 seconds) |
| 2026-05-24 09:52:02 +0000 | <int-e> | tomsmeding: Oh. Of course. |
| 2026-05-24 09:51:50 +0000 | <tomsmeding> | so the family instance is not general enough for the class instance |
| 2026-05-24 09:51:32 +0000 | <tomsmeding> | int-e: no, because it's the type Svg that is too general |
| 2026-05-24 09:51:23 +0000 | <Noinia> | yes indeed; maybe in hindsight thatm akes sense |
| 2026-05-24 09:51:21 +0000 | <tomsmeding> | that confirms my explanation |
| 2026-05-24 09:51:21 +0000 | <int-e> | weirdly, adding :: * in the type family doesn't |
| 2026-05-24 09:51:10 +0000 | <int-e> | Anyway, that makes it work. |
| 2026-05-24 09:51:01 +0000 | <tomsmeding> | oh haha |
| 2026-05-24 09:50:55 +0000 | <int-e> | (I marked this in the playground but of course it didn't make it into the X11 selection: instance IsDrawable (Svg (a :: *)) ) |
| 2026-05-24 09:50:51 +0000 | <tomsmeding> | that's the same link Leary pasted? |
| 2026-05-24 09:50:22 +0000 | <int-e> | I hate this |
| 2026-05-24 09:50:17 +0000 | <int-e> | https://play.haskell.org/saved/RyQAXNsG |
| 2026-05-24 09:49:49 +0000 | <tomsmeding> | your explicit L122 type equality forces `model` to have kind Type (otherwise the equality doesn't kind-check) so all works |
| 2026-05-24 09:49:30 +0000 | <tomsmeding> | so GHC determines that your type instance is not general enough and doesn't use it |
| 2026-05-24 09:49:18 +0000 | <tomsmeding> | Noinia: the `model` parameter in your IsDrawable instance declaration has any kind, but the `model` parameter in your `type instance Rendered` declaration is forced to kind Type due to being an argument to View |
| 2026-05-24 09:49:11 +0000 | <Noinia> | hmm yes apparently |
| 2026-05-24 09:48:36 +0000 | <tomsmeding> | oh |
| 2026-05-24 09:48:18 +0000 | <tomsmeding> | *fail |
| 2026-05-24 09:48:16 +0000 | <tomsmeding> | so you even need kind-polymorphism for this to faiul |
| 2026-05-24 09:48:08 +0000 | <Noinia> | G |
| 2026-05-24 09:48:01 +0000 | <tomsmeding> | :o |
| 2026-05-24 09:47:48 +0000 | AlexNoo | (~AlexNoo@5.139.233.99) |
| 2026-05-24 09:47:45 +0000 | <tomsmeding> | yes, this kind of "when exactly do I expand the type family" feels like a thing that SPJ and friends have been tinkering with recently |
| 2026-05-24 09:47:42 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-05-24 09:47:31 +0000 | <Noinia> | in my actual code I now got things to work by specifying that the argument of Svg has Kind Type |
| 2026-05-24 09:47:15 +0000 | <int-e> | Works with 9.0 though (after enabling FlexibleContexts). Fun! |
| 2026-05-24 09:47:13 +0000 | <Noinia> | yes I also made a minimal example; but somehow didn't manage to reproduce it yet that way |
| 2026-05-24 09:46:53 +0000 | <tomsmeding> | is the problem here that GHC has to infer a quanfified constraint `forall a. Monoid (Rendered (Svg a))` here and somehow it decides not to reduce the type family in that case? |
| 2026-05-24 09:45:17 +0000 | <tomsmeding> | turns out that occurrence is important |
| 2026-05-24 09:45:09 +0000 | <tomsmeding> | oh! I was almost there too, just missing the a on the RHS of Rendered (Svg a) |
| 2026-05-24 09:44:34 +0000 | <Leary> | tomsmeding: tweaked: https://play.haskell.org/saved/RyQAXNsG |
| 2026-05-24 09:42:54 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-05-24 09:42:42 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 246 seconds) |
| 2026-05-24 09:42:31 +0000 | <tomsmeding> | Noinia: that's odd. I tried to reproduce it very minimally but I couldn't -- I'm probably missing some essential component of your situation https://play.haskell.org/saved/nO5kBURh |
| 2026-05-24 09:38:15 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-05-24 09:33:15 +0000 | <Noinia> | (i.e. without the L122; GHC complains that it cannot deteremine that (Rendered (Svg model action)) has a Monoid constraint; that seems odd to me; since I just defined that 'Rendered (Svg model action) = [View model action])' above there (which thus has a Monoid constraint) |