Copyright  (C) 20142018 Edward Kmett 

License  BSDstyle (see the file LICENSE) 
Maintainer  Edward Kmett <ekmett@gmail.com> 
Stability  experimental 
Portability  portable 
Safe Haskell  Trustworthy 
Language  Haskell2010 
Synopsis
 class Profunctor p => Closed p where
 closed :: p a b > p (x > a) (x > b)
 newtype Closure p a b = Closure {
 runClosure :: forall x. p (x > a) (x > b)
 close :: Closed p => (p :> q) > p :> Closure q
 unclose :: Profunctor q => (p :> Closure q) > p :> q
 data Environment p a b where
 Environment :: ((z > y) > b) > p x y > (a > z > x) > Environment p a b
 curry' :: Closed p => p (a, b) c > p a (b > c)
Documentation
class Profunctor p => Closed p where #
A strong profunctor allows the monoidal structure to pass through.
A closed profunctor allows the closed structure to pass through.
Instances
Closure
adjoins a Closed
structure to any Profunctor
.
Closure  

Instances
data Environment p a b where #
Environment :: ((z > y) > b) > p x y > (a > z > x) > Environment p a b 