interface Sieve : (Type -> Type -> Type) -> (Type -> Type) -> TypeA profunctor `p` is a sieve on `f` if it is a subprofunctor of `Star f`.
sieve : p a b -> a -> f bsieve : Sieve p f => p a b -> a -> f binterface Cosieve : (Type -> Type -> Type) -> (Type -> Type) -> TypeA profunctor `p` is a cosieve on `f` if it is a subprofunctor of `Costar f`.
cosieve : p a b -> f a -> bcosieve : Cosieve p f => p a b -> f a -> b