profunctors-5.6.2: Profunctors

Copyright | (C) 2015 Edward Kmett
License | BSD-style (see the file LICENSE)
Maintainer | Edward Kmett <ekmett@gmail.com>
Stability | provisional
Portability | MPTCs, fundeps
Safe Haskell | Trustworthy
Language | Haskell2010

Data.Profunctor.Sieve

Description

Synopsis

- class (Profunctor p, Functor f) => Sieve (p :: Type -> Type -> Type) (f :: Type -> Type) | p -> f where
  - sieve :: p a b -> a -> f b
- class (Profunctor p, Functor f) => Cosieve (p :: Type -> Type -> Type) (f :: Type -> Type) | p -> f where
  - cosieve :: p a b -> f a -> b

# Documentation

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

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`.

Methods

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

#### Instances

Instances details

(Monad m, Functor m) => Sieve (Kleisli m) m # |
Instance details Defined in Data.Profunctor.Sieve Methods sieve :: Kleisli m a b -> a -> m b #
Functor f => Sieve (Star f) f # |
Instance details Defined in Data.Profunctor.Sieve Methods sieve :: Star f a b -> a -> f b #
Sieve (->) Identity # |
Instance details Defined in Data.Profunctor.Sieve Methods sieve :: (a -> b) -> a -> Identity b #
Sieve (Forget r :: Type -> Type -> Type) (Const r :: Type -> Type) # |
Instance details Defined in Data.Profunctor.Sieve Methods sieve :: Forget r a b -> a -> Const r b #
(Sieve p f, Sieve q g) => Sieve (Procompose p q) (Compose g f) # |
Instance details Defined in Data.Profunctor.Composition Methods sieve :: Procompose p q a b -> a -> Compose g f b #

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

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`.

Methods

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

#### Instances

Instances details

Cosieve (Tagged :: Type -> Type -> Type) (Proxy :: Type -> Type) # |
Instance details Defined in Data.Profunctor.Sieve Methods cosieve :: Tagged a b -> Proxy a -> b #
Functor w => Cosieve (Cokleisli w) w # |
Instance details Defined in Data.Profunctor.Sieve Methods cosieve :: Cokleisli w a b -> w a -> b #
Functor f => Cosieve (Costar f) f # |
Instance details Defined in Data.Profunctor.Sieve Methods cosieve :: Costar f a b -> f a -> b #
Cosieve (->) Identity # |
Instance details Defined in Data.Profunctor.Sieve Methods cosieve :: (a -> b) -> Identity a -> b #
(Cosieve p f, Cosieve q g) => Cosieve (Procompose p q) (Compose f g) # |
Instance details Defined in Data.Profunctor.Composition Methods cosieve :: Procompose p q a b -> Compose f g a -> b #