Closed RyanGlScott closed 8 years ago
This one I'm not so sure about, for a few reasons:
k2
is for all practical purposes not free because all of the instances in the module only work when k2
is *
. This means, for example, that you won't be able to use any of those instances for your example ComposeT (ReaderT ()) (TaggedT Int)
type constructorThose are all valid points. For the sake of keeping ComposeT
simple, I wouldn't have any issue with keeping the kinds monomorphic.
ComposeT
's kinds can be generalized quite a bit more, allowing it to be used with more exotic data structures likeTaggedT
fromtagged-transformer
, e.g.,