Gabriella439 / Haskell-MMorph-Library

Monad morphisms
BSD 3-Clause "New" or "Revised" License
47 stars 26 forks source link

Make ComposeT poly-kinded #24

Closed RyanGlScott closed 8 years ago

RyanGlScott commented 8 years ago

ComposeT's kinds can be generalized quite a bit more, allowing it to be used with more exotic data structures like TaggedT from tagged-transformer, e.g.,

> newtype TaggedT s m a = TaggedT (m a)
> :kind ReaderT Int `ComposeT` TaggedT Maybe
ReaderT () `ComposeT` TaggedT Int :: (k2 -> *) -> k2 -> *
Gabriella439 commented 8 years ago

This one I'm not so sure about, for a few reasons:

RyanGlScott commented 8 years ago

Those are all valid points. For the sake of keeping ComposeT simple, I wouldn't have any issue with keeping the kinds monomorphic.