module Proarrow.Category.Dagger where import Proarrow.Core (CAT, CategoryOf (..), Profunctor, type (+->)) class (Dagger k, Profunctor p) => DaggerProfunctor (p :: k +-> k) where dagger :: p a b -> p b a class (DaggerProfunctor ((~>) :: CAT k)) => Dagger k instance (DaggerProfunctor ((~>) :: CAT k)) => Dagger k