content: {-# LANGUAGE Safe #-}
  
  -- |
  --
  -- Module      :  Control.Arrow
  -- Copyright   :  (c) Ross Paterson 2002
  -- License     :  BSD-style (see the LICENSE file in the distribution)
  --
  -- Maintainer  :  libraries@haskell.org
  -- Stability   :  provisional
  -- Portability :  portable
  --
  -- Basic arrow definitions, based on
  --
  --  * /Generalising Monads to Arrows/, by John Hughes,
  --    /Science of Computer Programming/ 37, pp67-111, May 2000.
  --
  -- plus a couple of definitions ('returnA' and 'loop') from
  --
  --  * /A New Notation for Arrows/, by Ross Paterson, in /ICFP 2001/,
  --    Firenze, Italy, pp229-240.
  --
  -- These papers and more information on arrows can be found at
  -- <http://www.haskell.org/arrows/>.
  
  module Control.Arrow
      (-- *  Arrows
       Arrow(..),
       Kleisli(..),
       -- **  Derived combinators
       returnA,
       (^>>),
       (>>^),
       (>>>),
       (<<<),
       -- **  Right-to-left variants
       (<<^),
       (^<<),
       -- *  Monoid operations
       ArrowZero(..),
       ArrowPlus(..),
       -- *  Conditionals
       ArrowChoice(..),
       -- *  Arrow application
       ArrowApply(..),
       ArrowMonad(..),
       leftApp,
       -- *  Feedback
       ArrowLoop(..)
       ) where
  
  import GHC.Internal.Control.Arrow
  