| 15 Sep 2025 |
emily | either Lennart bends, Cabal/GHC maintainers do, or it's a fork situation | 13:00:32 |
MangoIV | I think the one that Lennart won’t support is TH and that can’t be used in GHC either | 13:08:07 |
MangoIV | Oh well… I guess if it’s used in boot libraries might still be an issue huh | 13:09:17 |
teo (they/he) | TH proper isn't used in boot libraries only TemplateHaskellQuotes, which means you don't have to worry about the tricky thing which is running splices | 13:11:13 |
teo (they/he) | In the long term, idk if GHC will continue to not use TH. GHC currently uses Generics to derive some of its typeclass instances and it leads to horribly slow compilation. TH would be one way to handle that in a better way. We can't currently use it, but that should be unblocked soon. I think the alternatives would be making Generics not slow, or a new way to derive instances | 13:12:58 |
emily | IIRC he said no plans for implicit params or magic hash, which sound like things GHC would plausibly use | 13:13:01 |
emily | though of course magic hash stuff may be dodgy for portability in general | 13:13:11 |
emily | GHC using TH sounds like it'd make @sternenseemann:systemli.org's day :P | 13:13:37 |
emily | (I guess it'd be fine as long as cross starts working properly again) | 13:13:57 |
teo (they/he) | Yeah GHC using TH is blocked on all the glaring issues with TH cross being solved | 13:14:24 |
emily | generics being slow enough for TH to seem better depresses me. in the tail end of my Haskell activity I was praying all this new stuff would kill off TH | 13:14:51 |
emily | I dislike TH very much :) | 13:15:13 |
MangoIV | What does magichash have to do with portability | 13:16:04 |
MangoIV | magichash is a purely syntactic extension | 13:16:21 |
maralorn | Idk. I think the idea of macros/front loading as much as logic as possible to the compile step seems very intriguing to me. | 13:16:46 |
MangoIV | implicitparams sounds like it is mostly relevant for HasCallStack. you can special case that if you want. | 13:17:01 |
teo (they/he) | It's always hard to kill off old code. I basically want to implement something (very vaguely) like Rust's facet for Haskell, and I think that could do it. I've been thinking about this for a while and it hasn't happened yet so we will see if it ever happens | 13:17:26 |