flexiwrap-0.0.1: Flexible wrappers

Data.Flex.Compose

Documentation

newtype (f :. g) a Source

Constructors

O 

Fields

unO :: f (g a)
 

type O = :.Source

inO :: (f (g a) -> f' (g' b)) -> (f :. g) a -> (f' :. g') bSource

inO2 :: (f (g a) -> f' (g' b) -> f'' (g'' c)) -> (f :. g) a -> (f' :. g') b -> (f'' :. g'') cSource

flexiCompose :: s -> (forall b. b -> f b) -> g a -> FWCTC s O f g aSource

returnC :: (Monad m, Monad n) => a -> m (n a)Source

liftMC :: (Monad f, Monad g) => (a -> b) -> f (g a) -> f (g b)Source

open :: FWCTC t O m n a -> m (n a)Source

close :: m (n a) -> FWCTC t O m n aSource

fmapC :: (Monad f, Monad g) => (a -> b) -> FWCTC t O f g a -> FWCTC t O f g bSource

wrapM :: (Monad m, Monad n) => (m (n (m (n a))) -> m (n a)) -> FWCTC t O m n (FWCTC t O m n a) -> FWCTC t O m n aSource

wrapFW :: (Monad m, Monad n) => (forall a. m (n (m (n a))) -> m (n a)) -> WrapBind (FWCTC t O m n)Source

class (Monad m, Monad n) => PComposable m n whereSource

Methods

prod :: n (m (n a)) -> m (n a)Source

Instances

joinP :: PComposable m n => m (n (m (n a))) -> m (n a)Source

data FWCompP Source

Constructors

FWCompP 

Instances

PComposable m n => Apply (FWBind t (O m n)) FWCompP (WrapBind (FWCTC t O m n)) 
PComposable m n => Apply (FWReturn t (O m n)) FWCompP (WrapReturn (FWCTC t O m n)) 
FWMonad (FWCTC (:*: FWCompP s) O m n) FWCompP 

class (Monad m, Monad n) => DComposable m n whereSource

Methods

dorp :: m (n (m a)) -> m (n a)Source

Instances

Monad n => DComposable ((->) r) n 

joinD :: DComposable m n => m (n (m (n a))) -> m (n a)Source

data FWCompD Source

Constructors

FWCompD 

Instances

DComposable m n => Apply (FWBind t (O m n)) FWCompD (WrapBind (FWCTC t O m n)) 
DComposable m n => Apply (FWReturn t (O m n)) FWCompD (WrapReturn (FWCTC t O m n)) 
FWMonad (FWCTC (:*: FWCompD s) O m n) FWCompD 

class (Monad m, Monad n) => SComposable m n whereSource

Methods

swap :: n (m a) -> m (n a)Source

Instances

Monad m => SComposable m [] 
Monad m => SComposable m (FW t) 
(Monad m, Error e) => SComposable m (Either e) 
(Monad m, Monoid s) => SComposable m (Writer s) 
SComposable (FW s) [] 
Monad m => SComposable (FW t) m 
Error e => SComposable (FW s) (Either e) 
Monoid s => SComposable (FW t) (Writer s) 
SComposable (FW s) (FW t) 

joinS :: SComposable m n => m (n (m (n a))) -> m (n a)Source

data FWCompS Source

Constructors

FWCompS 

Instances

SComposable m n => Apply (FWBind t (O m n)) FWCompS (WrapBind (FWCTC t O m n)) 
SComposable m n => Apply (FWReturn t (O m n)) FWCompS (WrapReturn (FWCTC t O m n)) 
FWMonad (FWCTC (:*: FWCompS s) O m n) FWCompS