Conversation

At least in Haskell in places I've worked the over use of TC's is terrible but that's more because of abysmal records than any category theory concerns.
1
6
And *de*abstraction is nearly impossible, once you fix the dictionary of a TC and realize down the road an entry doesn't belong you're out of luck. eg. peek/poke should never have been bundled with Storable but here we are ...
3
1
Apologies for the tangent, but can you expand on your thinking about Storable? It’s probably my most-used type class after Show, and I can’t recall having significant negative feelings about it.
1
3
Several times I've wanted to bind to C structs that I wanted to read but never write but I'm forced to provide a poke, poke{Elem,Byte}Off. Nowadays I just have c2hs gen up the specific thing I need.
1
3
I put an error there if I’m not supposed to write. That example does get to the problem of it being near impossible to slice up interfaces to a universally right granularity.
1
2
It's difficult to get right, but another big problem is Haskell culture heavily incentivizes programming against interfaces and once you've built up an entire ecosystem around them the mistakes become millstones.
1
5
It doesn't help that the tools for relating typeclass signatures/interfaces are, er, kinda shitty for that job. Strictly nominal, no way to say "this is all I actually use of it"
1
2