profunctors-5.2: Profunctors

Copyright(C) 2015 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
PortabilityMPTCs, fundeps
Safe HaskellSafe
LanguageHaskell2010

Data.Profunctor.Sieve

Description

 

Synopsis

Documentation

class (Profunctor p, Functor f) => Sieve p f | p -> f where Source #

A Profunctor p is a Sieve on f if it is a subprofunctor of Star f.

That is to say it is a subset of Hom(-,f=) closed under lmap and rmap.

Alternately, you can view it as a sieve in the comma category Hask/f.

Minimal complete definition

sieve

Methods

sieve :: p a b -> a -> f b Source #

Instances

Sieve (->) Identity Source # 

Methods

sieve :: (a -> b) -> a -> Identity b Source #

(Monad m, Functor m) => Sieve (Kleisli m) m Source # 

Methods

sieve :: Kleisli m a b -> a -> m b Source #

Functor f => Sieve (Star f) f Source # 

Methods

sieve :: Star f a b -> a -> f b Source #

Sieve (Forget r) (Const * r) Source # 

Methods

sieve :: Forget r a b -> a -> Const * r b Source #

(Sieve p f, Sieve q g) => Sieve (Procompose p q) (Compose * * g f) Source # 

Methods

sieve :: Procompose p q a b -> a -> Compose * * g f b Source #

class (Profunctor p, Functor f) => Cosieve p f | p -> f where Source #

A Profunctor p is a Cosieve on f if it is a subprofunctor of Costar f.

That is to say it is a subset of Hom(f-,=) closed under lmap and rmap.

Alternately, you can view it as a cosieve in the comma category f/Hask.

Minimal complete definition

cosieve

Methods

cosieve :: p a b -> f a -> b Source #

Instances

Cosieve (->) Identity Source # 

Methods

cosieve :: (a -> b) -> Identity a -> b Source #

Functor w => Cosieve (Cokleisli w) w Source # 

Methods

cosieve :: Cokleisli w a b -> w a -> b Source #

Functor f => Cosieve (Costar f) f Source # 

Methods

cosieve :: Costar f a b -> f a -> b Source #

Cosieve (Tagged *) (Proxy *) Source # 

Methods

cosieve :: Tagged * a b -> Proxy * a -> b Source #

(Cosieve p f, Cosieve q g) => Cosieve (Procompose p q) (Compose * * f g) Source # 

Methods

cosieve :: Procompose p q a b -> Compose * * f g a -> b Source #