{-# LANGUAGE NoImplicitPrelude #-} module Precursor.Control.Category ( -- * Category Category , (.) , id -- ** Composition , (<<<) , (>>>) -- * Arrow , Arrow , arr , (***) , (&&&) -- ** Arrows , Kleisli(..) -- *** Derived combinators , returnA , (^>>) , (>>^) -- *** Right-to-left variants , (<<^) , (^<<) -- ** Monoid operations , ArrowZero , zeroArrow , ArrowPlus , (<+>) -- ** Conditionals , ArrowChoice , left , right , (+++) , (|||) -- ** Arrow application , ArrowApply , app , ArrowMonad(..) , leftApp -- ** Feedback , ArrowLoop , loop ) where import Control.Arrow import Control.Category