I'm probably not going to merge this, I don't think naming type variables in very abstract types is useful - even with the names I'd still need to figure it out interactively using holes and such, and as you found, some of the vars don't even have sensible names, or their meaning changes depending on use case.
Mostly these types will be interacted with in a context where the vars are mostly concrete anyway, such as JsonCodec, JPropCodec, etc.
I'm probably not going to merge this, I don't think naming type variables in very abstract types is useful - even with the names I'd still need to figure it out interactively using holes and such, and as you found, some of the vars don't even have sensible names, or their meaning changes depending on use case.
Mostly these types will be interacted with in a context where the vars are mostly concrete anyway, such as
JsonCodec
,JPropCodec
, etc.