Safe Haskell | Safe-Infered |
---|
- newtype ArrowAsMonad a c = ArrowAsMonad {
- unApplyAsMonad :: a () c
- monadicA :: ArrowApply a => (b -> ArrowAsMonad a c) -> a b c
- unmonadicA :: ArrowApply a => a b c -> b -> ArrowAsMonad a c
- liftA :: Arrow a => (c -> d) -> a b c -> a b d
- liftA2 :: ArrowApply a => (p1 -> p2 -> d) -> a b p1 -> a b p2 -> a b d
- liftA3 :: ArrowApply a => (p1 -> p2 -> p3 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b d
- liftA4 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b d
- liftA5 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> p5 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b p5 -> a b d
- liftA6 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> p5 -> p6 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b p5 -> a b p6 -> a b d
- liftA7 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> p5 -> p6 -> p7 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b p5 -> a b p6 -> a b p7 -> a b d
- liftA8 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> p5 -> p6 -> p7 -> p8 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b p5 -> a b p6 -> a b p7 -> a b p8 -> a b d
- liftA9 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> p5 -> p6 -> p7 -> p8 -> p9 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b p5 -> a b p6 -> a b p7 -> a b p8 -> a b p9 -> a b d
- liftAM :: (ArrowApply a, Monad m) => (p1 -> c) -> a b (m p1) -> a b (m c)
- liftAM2 :: (ArrowApply a, Monad m) => (p1 -> p2 -> c) -> a b (m p1) -> a b (m p2) -> a b (m c)
- liftAM3 :: (ArrowApply a, Monad m) => (p1 -> p2 -> p3 -> c) -> a b (m p1) -> a b (m p2) -> a b (m p3) -> a b (m c)
- liftAM4 :: (ArrowApply a, Monad m) => (p1 -> p2 -> p3 -> p4 -> c) -> a b (m p1) -> a b (m p2) -> a b (m p3) -> a b (m p4) -> a b (m c)
- liftAM5 :: (ArrowApply a, Monad m) => (p1 -> p2 -> p3 -> p4 -> p5 -> c) -> a b (m p1) -> a b (m p2) -> a b (m p3) -> a b (m p4) -> a b (m p5) -> a b (m c)
Documentation
newtype ArrowAsMonad a c Source
ArrowAsMonad | |
|
(Arrow a, ArrowApply a) => Monad (ArrowAsMonad a) | An instance that lets you work with Arrows that support ArrowApply as monads. | Example: | myarrow :: ArrowApply a => a Int Int | myarrow = monadicA $ v -> do | let vp1 = v + 1 | v' <- unmonadicA anotherIntToIntArrow vp1 | return (v' * 10) |
monadicA :: ArrowApply a => (b -> ArrowAsMonad a c) -> a b cSource
Embed a block of monadic code in an arrow.
unmonadicA :: ArrowApply a => a b c -> b -> ArrowAsMonad a cSource
Embed an arrow in a block of monadic code.
liftA2 :: ArrowApply a => (p1 -> p2 -> d) -> a b p1 -> a b p2 -> a b dSource
Lift an Arrow operation with two parameters
liftA3 :: ArrowApply a => (p1 -> p2 -> p3 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b dSource
Lift an Arrow operation with three parameters
liftA4 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b dSource
Lift an Arrow operation with four parameters
liftA5 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> p5 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b p5 -> a b dSource
Lift an Arrow operation with five parameters
liftA6 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> p5 -> p6 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b p5 -> a b p6 -> a b dSource
Lift an Arrow operation with six parameters
liftA7 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> p5 -> p6 -> p7 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b p5 -> a b p6 -> a b p7 -> a b dSource
Lift an Arrow operation with seven parameters
liftA8 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> p5 -> p6 -> p7 -> p8 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b p5 -> a b p6 -> a b p7 -> a b p8 -> a b dSource
Lift an Arrow operation with eight parameters
liftA9 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> p5 -> p6 -> p7 -> p8 -> p9 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b p5 -> a b p6 -> a b p7 -> a b p8 -> a b p9 -> a b dSource
Lift an Arrow operation with eight parameters
liftAM :: (ArrowApply a, Monad m) => (p1 -> c) -> a b (m p1) -> a b (m c)Source
liftAM2 :: (ArrowApply a, Monad m) => (p1 -> p2 -> c) -> a b (m p1) -> a b (m p2) -> a b (m c)Source
liftAM3 :: (ArrowApply a, Monad m) => (p1 -> p2 -> p3 -> c) -> a b (m p1) -> a b (m p2) -> a b (m p3) -> a b (m c)Source
liftAM4 :: (ArrowApply a, Monad m) => (p1 -> p2 -> p3 -> p4 -> c) -> a b (m p1) -> a b (m p2) -> a b (m p3) -> a b (m p4) -> a b (m c)Source
liftAM5 :: (ArrowApply a, Monad m) => (p1 -> p2 -> p3 -> p4 -> p5 -> c) -> a b (m p1) -> a b (m p2) -> a b (m p3) -> a b (m p4) -> a b (m p5) -> a b (m c)Source