-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Haskell 98 Profunctors -- -- Haskell 98 Profunctors @package profunctors @version 3.0 module Data.Profunctor class Profunctor h lmap :: Profunctor h => (a -> b) -> h b c -> h a c rmap :: Profunctor h => (b -> c) -> h a b -> h a c newtype UpStar f d c UpStar :: (d -> f c) -> UpStar f d c runUpStar :: UpStar f d c -> d -> f c newtype DownStar f d c DownStar :: (f d -> c) -> DownStar f d c runDownStar :: DownStar f d c -> f d -> c newtype WrappedArrow k a b WrapArrow :: k a b -> WrappedArrow k a b unwrapArrow :: WrappedArrow k a b -> k a b instance Functor w => Profunctor (Cokleisli w) instance Monad m => Profunctor (Kleisli m) instance Arrow k => Profunctor (WrappedArrow k) instance ArrowLoop k => ArrowLoop (WrappedArrow k) instance ArrowApply k => ArrowApply (WrappedArrow k) instance ArrowChoice k => ArrowChoice (WrappedArrow k) instance ArrowZero k => ArrowZero (WrappedArrow k) instance Arrow k => Arrow (WrappedArrow k) instance Category k => Category (WrappedArrow k) instance Functor (DownStar f a) instance Functor f => Profunctor (DownStar f) instance Functor f => Functor (UpStar f a) instance Functor f => Profunctor (UpStar f) instance Profunctor (->)