Getting dangerously close to becoming an “ML module guy”
Conversation
What if the typeclasses… were bad
4
1
8
yes, yes,
…but still can I have something like modular implicits or instance arguments?
1
3
The programmer can have a little modular implicits, as a treat
1
3
yes, I like treats!
1
3
just kind of a mistake to make me try to make a main course out of the treat imo (as much as I like them)
1
3
Moving out of shitposting mode for a sec, my main gripe with typeclasses is that global coherence rarely makes sense for “good” typeclasses, and wrapping everything in a pile of newtypes, calling a function, then unwrapping is a lot of ceremony!
2
4
Also, they conflate a bunch of notions that _ought_ to be distinct, namely syntax + dynamic dispatch
Like, do notation is hardwired to Monad, even though it still makes sense when we have monad-ish things that aren’t Monad on the nose
2
4
Leans situation with Additive/Multiplicative Groups is another example here. By tying overloaded syntax to dynamic dispatch, we end up in all sorts of weird places
3
3
Replying to
yeah I've been there trying to implement abstract algebra in Rust… it's kind of what led me towards a dislike of traits, and towards module systems
Then seeing module-style design popping up when trying to design GPU abstractions. You can end up in very strange places with traits implemented on empty enums
2

