-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Utilities for working with ArrowApply instances more naturally -- -- This package provides useful utilities for making use of the -- opportunities the ArrowApply class provides, such as the ability to -- work with Arrows as Monads, and use liftM-like functions. @package arrowapply-utils @version 0.2 module Control.Arrow.ApplyUtils newtype ArrowAsMonad a c ArrowAsMonad :: a () c -> ArrowAsMonad a c unApplyAsMonad :: ArrowAsMonad a c -> a () c -- | Embed a block of monadic code in an arrow. monadicA :: ArrowApply a => (b -> ArrowAsMonad a c) -> a b c -- | Embed an arrow in a block of monadic code. unmonadicA :: ArrowApply a => a b c -> b -> ArrowAsMonad a c -- | Lift an Arrow operation. liftA :: Arrow a => (c -> d) -> a b c -> a b d -- | Lift an Arrow operation with two parameters liftA2 :: ArrowApply a => (p1 -> p2 -> d) -> a b p1 -> a b p2 -> a b d -- | Lift an Arrow operation with three parameters liftA3 :: ArrowApply a => (p1 -> p2 -> p3 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b d -- | Lift an Arrow operation with four parameters liftA4 :: ArrowApply a => (p1 -> p2 -> p3 -> p4 -> d) -> a b p1 -> a b p2 -> a b p3 -> a b p4 -> a b d -- | Lift an Arrow operation with five 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 d -- | Lift an Arrow operation with six 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 d -- | Lift an Arrow operation with seven 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 d -- | Lift an Arrow operation with eight 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 d -- | 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 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) instance (Arrow a, ArrowApply a) => Monad (ArrowAsMonad a)