1 definition module UniqueState
3 :: Maybe a = Just a | Nothing
7 fmap :: u:(v:a -> w:b) *(f v:a) -> *(f w:b)
9 class Applicative f | Functor f
11 (<*>) infixl 4 :: *(f v:(w:a -> x:b)) *(f w:a) -> *(f x:b)
12 pure :: u:a -> *(f u:a)
14 class Monad m | Applicative m
16 bind :: *(m v:b) w:(v:b -> *(m x:c)) -> *(m x:c)
17 (>>=) infixl 1 :: *(m v:b) w:(v:b -> *(m x:c)) -> *(m x:c)
18 (>>=) ma a2mb :== bind ma a2mb
19 (>>|) infixl 1 :: *(m v:b) w:(v:b -> *(m x:c)) -> *(m x:c)
20 (>>|) ma mb :== ma >>= \_ -> mb
21 return :: u:a -> *(m u:a) | Applicative m
24 :: State s a = State .(s -> .(a, s))
26 runState :: u:(State .s .a) .s -> v:(.a,.s), [u <= v]
28 instance Functor (State String)
29 instance Applicative (State String)
30 instance Monad (State String)
32 instance Functor Maybe
33 instance Applicative Maybe