mit-3qvpPyAi6mH-10: A git wrapper with a streamlined UX
Safe HaskellSafe-Inferred
LanguageHaskell2010

Mit.Monad

Documentation

data Mit r x a Source #

Instances

Instances details
MonadIO (Mit r x) Source # 
Instance details

Defined in Mit.Monad

Methods

liftIO :: IO a -> Mit r x a #

Applicative (Mit r x) Source # 
Instance details

Defined in Mit.Monad

Methods

pure :: a -> Mit r x a #

(<*>) :: Mit r x (a -> b) -> Mit r x a -> Mit r x b #

liftA2 :: (a -> b -> c) -> Mit r x a -> Mit r x b -> Mit r x c #

(*>) :: Mit r x a -> Mit r x b -> Mit r x b #

(<*) :: Mit r x a -> Mit r x b -> Mit r x a #

Functor (Mit r x) Source # 
Instance details

Defined in Mit.Monad

Methods

fmap :: (a -> b) -> Mit r x a -> Mit r x b #

(<$) :: a -> Mit r x b -> Mit r x a #

Monad (Mit r x) Source # 
Instance details

Defined in Mit.Monad

Methods

(>>=) :: Mit r x a -> (a -> Mit r x b) -> Mit r x b #

(>>) :: Mit r x a -> Mit r x b -> Mit r x b #

return :: a -> Mit r x a #

runMit :: r -> Mit r a a -> IO a Source #

io :: IO a -> Mit r x a Source #

getEnv :: Mit r x r Source #

withEnv :: (r -> s) -> Mit s x a -> Mit r x a Source #

type Goto r x a = forall xx void. Label (X x a) xx => a -> Mit r xx void Source #

class Label a b Source #

Instances

Instances details
Label (X a b) (X c d) => Label (X a b) (X (X c d) e) Source # 
Instance details

Defined in Mit.Monad

Methods

bury :: X a b -> X (X c d) e

Label (X a b) (X a b) Source # 
Instance details

Defined in Mit.Monad

Methods

bury :: X a b -> X a b

label :: forall r x a. (Goto r x a -> Mit r (X x a) a) -> Mit r x a Source #

with :: (forall v. (a -> IO v) -> IO v) -> (a -> Mit r (X x b) b) -> Mit r x b Source #

with_ :: (forall v. IO v -> IO v) -> Mit r (X x a) a -> Mit r x a Source #

data X a b Source #

Instances

Instances details
Label (X a b) (X c d) => Label (X a b) (X (X c d) e) Source # 
Instance details

Defined in Mit.Monad

Methods

bury :: X a b -> X (X c d) e

Label (X a b) (X a b) Source # 
Instance details

Defined in Mit.Monad

Methods

bury :: X a b -> X a b