flexiwrap-0.0.1: Flexible wrappers

Data.Flex.WrapT

Documentation

newtype FlexiWrapT s f a Source

Constructors

FlexiWrapT 

Fields

unFlexiWrapT :: f a
 

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

class FwtMonadState s m | m -> s whereSource

Methods

fwtGet :: m sSource

fwtPut :: s -> m ()Source

Instances

(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

Methods

fWrapT :: w -> a -> bSource

Instances

(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) 

data FWTagT Source

Instances

TypeCast r TNil => Apply FWTagT a r 
Apply FWTagT (FWT t f a) t 

class FWCon a f | a -> fSource

Instances

TypeCast (r a) (f a) => FWCon (f a) r 
FWCon (FWT t f a) f 

data FWFWrapT s f a Source

Constructors

FWFWrapT 

Instances

Apply (FWFWrapT u f (FWT s f a)) FWAlreadyWrapped (FWT s f a -> FWT u f a) 
Apply (FWFWrapT u f (f a)) FWNewWrapper (f a -> FWT u f a)