proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Profunctor.Instance.Sieve

Description

Sieves: a Sieve a b says which arrows into a and out of b are in, closed under composition on both sides. Sieves are the subobjects of the representable at a/b, so they are the truth values of a category of profunctors, and Proarrow.Category.Enriched.Finitary makes them the HasSubobjectClassifier of the finitary ones.

Documentation

data Sieve (a :: k) (b :: j) where Source Github #

Constructors

Sieve :: forall {k} {j} (a :: k) (b :: j). (Ob a, Ob b) => (forall (c :: k) (d :: j). (c ~> a) -> (b ~> d) -> Bool) -> Sieve a b 

Instances

Instances details
(FiniteCat j, FiniteCat k) => Finitary (Sieve :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Enriched.Finitary

Methods

size :: forall (a :: k) (b :: j). (Ob a, Ob b) => Natural Source Github #

toIndex :: forall (a :: k) (b :: j). (Ob a, Ob b) => Sieve a b -> Natural Source Github #

fromIndex :: forall (a :: k) (b :: j). (Ob a, Ob b) => Natural -> Sieve a b Source Github #

elements :: forall (a :: k) (b :: j). (Ob a, Ob b) => [Sieve a b] Source Github #

(CategoryOf j, CategoryOf k) => Profunctor (Sieve :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Instance.Sieve

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Sieve a b -> Sieve c d Source Github #

lmap :: forall (c :: k) (a :: k) (b :: j). (c ~> a) -> Sieve a b -> Sieve c b Source Github #

rmap :: forall (b :: j) (d :: j) (a :: k). (b ~> d) -> Sieve a b -> Sieve a d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Sieve a b -> r Source Github #