-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Arrow Transformer Library -- -- Arrow Transformer Library @package atl @version 17072 module Control.Arrow.Writer.Class class Arrow r => ArrowWriter w r | r -> w tell :: ArrowWriter w r => r w () look :: ArrowWriter w r => r a (a, w) censor :: ArrowWriter w r => (w -> w) -> r a b -> r a b looksA :: ArrowWriter w r => r w b -> r a (a, b) looks :: ArrowWriter w r => (w -> b) -> r a (a, b) module Control.Arrow.Transformer class ArrowTransformer xT lift :: (ArrowTransformer xT, Arrow r) => r a b -> xT r a b tmap :: (ArrowTransformer xT, Arrow r, Arrow s) => (forall a b. r a b -> s a b) -> xT r a b -> xT s a b module Control.Arrow.Writer newtype WriterT w r a b WriterT :: r a (b, w) -> WriterT w r a b [runWriterT] :: WriterT w r a b -> r a (b, w) instance GHC.Base.Monoid w => Control.Arrow.Transformer.ArrowTransformer (Control.Arrow.Writer.WriterT w) instance (GHC.Base.Monoid w, Control.Arrow.Arrow r) => Control.Category.Category (Control.Arrow.Writer.WriterT w r) instance (GHC.Base.Monoid w, Control.Arrow.Arrow r) => Control.Arrow.Arrow (Control.Arrow.Writer.WriterT w r) instance (GHC.Base.Monoid w, Control.Arrow.ArrowApply r) => Control.Arrow.ArrowApply (Control.Arrow.Writer.WriterT w r) instance (GHC.Base.Monoid w, Control.Arrow.ArrowZero r) => Control.Arrow.ArrowZero (Control.Arrow.Writer.WriterT w r) instance (GHC.Base.Monoid w, Control.Arrow.ArrowPlus r) => Control.Arrow.ArrowPlus (Control.Arrow.Writer.WriterT w r) instance (GHC.Base.Monoid w, Control.Arrow.ArrowChoice r) => Control.Arrow.ArrowChoice (Control.Arrow.Writer.WriterT w r) instance (GHC.Base.Monoid w, Control.Arrow.ArrowLoop r) => Control.Arrow.ArrowLoop (Control.Arrow.Writer.WriterT w r) instance (GHC.Base.Monoid w, Control.Arrow.Arrow r) => Control.Arrow.Writer.Class.ArrowWriter w (Control.Arrow.Writer.WriterT w r) module Control.Arrow.State.Class class Arrow r => ArrowState s r | r -> s get :: ArrowState s r => r () s put :: ArrowState s r => r s () gets :: ArrowState s r => (s -> a) -> r () a set :: ArrowState s r => (s -> s) -> r a a module Control.Arrow.State newtype StateT s r a b StateT :: r (a, s) (b, s) -> StateT s r a b [runStateT] :: StateT s r a b -> r (a, s) (b, s) instance Control.Arrow.Transformer.ArrowTransformer (Control.Arrow.State.StateT s) instance Control.Category.Category r => Control.Category.Category (Control.Arrow.State.StateT s r) instance Control.Arrow.Arrow r => Control.Arrow.Arrow (Control.Arrow.State.StateT s r) instance Control.Arrow.ArrowApply r => Control.Arrow.ArrowApply (Control.Arrow.State.StateT s r) instance Control.Arrow.ArrowZero r => Control.Arrow.ArrowZero (Control.Arrow.State.StateT s r) instance Control.Arrow.ArrowPlus r => Control.Arrow.ArrowPlus (Control.Arrow.State.StateT s r) instance Control.Arrow.ArrowChoice r => Control.Arrow.ArrowChoice (Control.Arrow.State.StateT s r) instance Control.Arrow.ArrowLoop r => Control.Arrow.ArrowLoop (Control.Arrow.State.StateT s r) instance Control.Arrow.Arrow r => Control.Arrow.State.Class.ArrowState s (Control.Arrow.State.StateT s r) instance (Control.Arrow.Arrow r, Control.Arrow.Transformer.ArrowTransformer xT, Control.Arrow.Arrow (xT (Control.Arrow.State.StateT s r))) => Control.Arrow.State.Class.ArrowState s (xT (Control.Arrow.State.StateT s r)) module Control.Arrow.Reader.Class class Arrow s => ArrowReader r s | s -> r ask :: ArrowReader r s => s () r local :: ArrowReader r s => (r -> r) -> s a b -> s a b asks :: (ArrowReader r s) => (r -> a) -> s () a asksA :: (ArrowReader r s) => s r a -> s () a module Control.Arrow.Reader newtype ReaderT r s a b ReaderT :: s (a, r) b -> ReaderT r s a b [runReaderT] :: ReaderT r s a b -> s (a, r) b withReaderT :: Arrow s => s q r -> ReaderT r s a b -> ReaderT q s a b instance Control.Arrow.Transformer.ArrowTransformer (Control.Arrow.Reader.ReaderT r) instance Control.Arrow.Arrow s => Control.Category.Category (Control.Arrow.Reader.ReaderT r s) instance Control.Arrow.Arrow s => Control.Arrow.Arrow (Control.Arrow.Reader.ReaderT r s) instance Control.Arrow.ArrowApply s => Control.Arrow.ArrowApply (Control.Arrow.Reader.ReaderT r s) instance Control.Arrow.ArrowZero s => Control.Arrow.ArrowZero (Control.Arrow.Reader.ReaderT r s) instance Control.Arrow.ArrowPlus s => Control.Arrow.ArrowPlus (Control.Arrow.Reader.ReaderT r s) instance Control.Arrow.ArrowChoice s => Control.Arrow.ArrowChoice (Control.Arrow.Reader.ReaderT r s) instance Control.Arrow.ArrowLoop s => Control.Arrow.ArrowLoop (Control.Arrow.Reader.ReaderT r s) instance Control.Arrow.Arrow s => Control.Arrow.Reader.Class.ArrowReader r (Control.Arrow.Reader.ReaderT r s) instance (Control.Arrow.Arrow s, Control.Arrow.Transformer.ArrowTransformer xT, Control.Arrow.Arrow (xT (Control.Arrow.Reader.ReaderT r s))) => Control.Arrow.Reader.Class.ArrowReader r (xT (Control.Arrow.Reader.ReaderT r s)) module Control.Arrow.List.Class class Arrow r => ArrowList r arrL :: ArrowList r => (a -> [b]) -> r a b mapL :: ArrowList r => ([b] -> [c]) -> r a b -> r a c module Control.Arrow.Abort.Class class Arrow r => ArrowAbort v r | r -> v abort :: ArrowAbort v r => r v a module Control.Arrow.Abort newtype AbortT v r a b AbortT :: r a (Either v b) -> AbortT v r a b [unwrapAbortT] :: AbortT v r a b -> r a (Either v b) runAbortT :: Arrow r => AbortT v r a v -> r a v instance Control.Arrow.Transformer.ArrowTransformer (Control.Arrow.Abort.AbortT v) instance Control.Arrow.ArrowChoice r => Control.Category.Category (Control.Arrow.Abort.AbortT v r) instance Control.Arrow.ArrowChoice r => Control.Arrow.Arrow (Control.Arrow.Abort.AbortT v r) instance (Control.Arrow.ArrowChoice r, Control.Arrow.ArrowApply r) => Control.Arrow.ArrowApply (Control.Arrow.Abort.AbortT v r) instance (Control.Arrow.ArrowChoice r, Control.Arrow.ArrowLoop r, Data.Typeable.Internal.Typeable v) => Control.Arrow.ArrowLoop (Control.Arrow.Abort.AbortT v r) instance Control.Arrow.ArrowChoice r => Control.Arrow.Abort.Class.ArrowAbort v (Control.Arrow.Abort.AbortT v r) instance (Control.Arrow.ArrowChoice r, Control.Arrow.Transformer.ArrowTransformer xT, Control.Arrow.Arrow (xT (Control.Arrow.Abort.AbortT v r))) => Control.Arrow.Abort.Class.ArrowAbort v (xT (Control.Arrow.Abort.AbortT v r))