packages feed

profunctor-extras 0.2 → 0.3.0

raw patch · 3 files changed

+34/−9 lines, 3 files

Files

Data/Profunctor/Composition.hs view
@@ -1,16 +1,32 @@ {-# LANGUAGE GADTs #-} module Data.Profunctor.Composition -  ( Compose(..)+  ( Procompose(..)+  , proidl+  , proidr+  , coproidl+  , coproidr   ) where  import Data.Profunctor -data Compose f g d c where-  Compose :: f d a -> g a c -> Compose f g d c +data Procompose f g d c where+  Procompose :: f d a -> g a c -> Procompose f g d c  -instance (Profunctor f, Profunctor g) => Profunctor (Compose f g) where-  lmap k (Compose f g) = Compose (lmap k f) g-  rmap k (Compose f g) = Compose f (rmap k g)+instance (Profunctor f, Profunctor g) => Profunctor (Procompose f g) where+  lmap k (Procompose f g) = Procompose (lmap k f) g+  rmap k (Procompose f g) = Procompose f (rmap k g) -instance Profunctor g => Functor (Compose f g a) where-  fmap k (Compose f g) = Compose f (rmap k g)+instance Profunctor g => Functor (Procompose f g a) where+  fmap k (Procompose f g) = Procompose f (rmap k g)++proidl :: Profunctor g => Procompose (->) g d c -> g d c +proidl (Procompose f g) = lmap f g++proidr :: Profunctor f => Procompose f (->) d c -> f d c+proidr (Procompose f g) = rmap g f++coproidl :: g d c -> Procompose (->) g d c+coproidl = Procompose id++coproidr :: f d c -> Procompose f (->) d c+coproidr g = Procompose g id
+ Data/Profunctor/Trace.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE GADTs #-}+module Data.Profunctor.Trace+  ( Trace(..)+  ) where++-- | Coend of profunctor from Hask -> Hask+data Trace f where+  Trace :: f a a -> Trace f
profunctor-extras.cabal view
@@ -1,6 +1,6 @@ name:          profunctor-extras category:      Control, Categories-version:       0.2+version:       0.3.0 license:       BSD3 cabal-version: >= 1.6 license-file:  LICENSE@@ -28,5 +28,6 @@   exposed-modules:     Data.Profunctor.Composition     Data.Profunctor.Collage+    Data.Profunctor.Trace    ghc-options:      -Wall