-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Allows instances for Category, Arrow and ArrowChoice for Pipes.
--   
--   Allows Category, Arrow, and ArrowChoice instances for Pipes.Pipe,
--   using newtype wrapper <a>Shaft</a>
@package pipes-category
@version 0.3.0.0


-- | Allows instances for Category, Arrow and ArrowChoice for <a>Pipe</a>
--   using newtype wrapper <a>Shaft</a>.
module Pipes.Shaft
newtype Shaft r m b c
Shaft :: Pipe b c m r -> Shaft r m b c
[fromShaft] :: Shaft r m b c -> Pipe b c m r
instance Pipes.Shaft.Shaft r1 m1 b1 c1 ~ t => Control.Lens.Wrapped.Rewrapped (Pipes.Shaft.Shaft r2 m2 b2 c2) t
instance Control.Lens.Wrapped.Wrapped (Pipes.Shaft.Shaft r m b c)
instance GHC.Base.Monad m => Control.Category.Category (Pipes.Shaft.Shaft r m)
instance GHC.Base.Monad m => Control.Arrow.Arrow (Pipes.Shaft.Shaft r m)
instance GHC.Base.Monad m => Control.Arrow.ArrowChoice (Pipes.Shaft.Shaft r m)
