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 |

## Synopsis

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

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

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

.

#### Instances

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

Defined in Data.Profunctor.Sieve | |

Sieve ((->) :: Type -> Type -> Type) Identity Source # | |

Defined in Data.Profunctor.Sieve | |

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

Defined in Data.Profunctor.Sieve | |

Sieve (Forget r :: Type -> Type -> Type) (Const r :: Type -> Type) Source # | |

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

Defined in Data.Profunctor.Composition 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`

.

#### Instances

Cosieve (Tagged :: Type -> Type -> Type) (Proxy :: Type -> Type) Source # | |

Cosieve ((->) :: Type -> Type -> Type) Identity Source # | |

Defined in Data.Profunctor.Sieve | |

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

Defined in Data.Profunctor.Sieve | |

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

Defined in Data.Profunctor.Sieve | |

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

Defined in Data.Profunctor.Composition cosieve :: Procompose p q a b -> Compose f g a -> b Source # |