Documentation
newtype FlexiWrapT s f a Source
FlexiWrapT | |
|
type FWT = FlexiWrapTSource
flexiWrapT :: s -> f a -> FWT s f aSource
inFlexiWrapT :: (f a -> g b) -> FWT s f a -> FWT s g bSource
inFlexiWrapT2 :: (f a -> g b -> h c) -> FWT s f a -> FWT s g b -> FWT s h cSource
asFlexiWrapT :: (FWT s f a -> FWT s g b) -> f a -> g bSource
data FWTDefaultFunctor Source
data FWTDefaultApplicative Source
Applicative f => Apply (FWCombine t f) FWTDefaultApplicative (WrapCombine (FWT t f)) | |
Applicative f => Apply (FWPure t f) FWTDefaultApplicative (WrapPure (FWT t f)) |
data FWTDefaultMonad Source
FWMonad (FWT (:*: FWTDefaultMonadAll s) m) FWTDefaultMonad | |
FWMonad (FWT (:*: FWTDefaultMonad s) m) FWTDefaultMonad | |
Monad m => Apply (FWBind t m) FWTDefaultMonad (WrapBind (FWT t m)) | |
Monad m => Apply (FWReturn t m) FWTDefaultMonad (WrapReturn (FWT t m)) |
data FWTDefaultMonadAll Source
data FWTDefaultMonadState Source
FWMonadState (FWT (:*: FWTDefaultMonadState s) m) FWTDefaultMonadState | |
FWMonadState (FWT (:*: FWTDefaultMonadAll s) m) FWTDefaultMonadState | |
MonadState s m => Apply (FWPut t s m) FWTDefaultMonadState (s -> FWT t m ()) | |
MonadState s m => Apply (FWGet t s m) FWTDefaultMonadState (FWT t m s) |
class FwtMonadState s m | m -> s whereSource
(MonadState s m, Apply (FWGet t s m) r (FWT t m s), Apply (FWPut t s m) r (s -> FWT t m ()), FWMonadState (FWT t m) r) => FwtMonadState s (FWT t m) |
class FWrapT w a b | w a -> b whereSource
(Apply FWTagT a t, FWCon a f, FWNormAppend s t u, FWIsWrappedT a w, Apply (FWFWrapT u f a) w (a -> FWT u f b)) => FWrapT s a (FWT u f b) |
class FWIsWrappedT a r | a -> rSource
TypeCast r FWNewWrapper => FWIsWrappedT a r | |
FWIsWrappedT (FWT s f a) FWAlreadyWrapped |