Module

Control.Subcategory.Profunctor.HasDimap

#HasDimap

class HasDimap (c :: Type -> Type -> Type) (p :: Type -> Type -> Type)  where

Members

Instances

#arr

arr :: forall c p v0 v1. HasDimap c p => HasIdentity c => Reflexive c p => ObjectOf c v0 => ObjectOf c v1 => c v0 v1 -> p v0 v1

#lcmap

lcmap :: forall c p v0 v1 v2. HasDimap c p => HasIdentity c => ObjectOf c v0 => ObjectOf c v1 => ObjectOf c v2 => c v0 v1 -> p v1 v2 -> p v0 v2

#rmap

rmap :: forall c p v0 v1 v2. HasDimap c p => HasIdentity c => ObjectOf c v0 => ObjectOf c v1 => ObjectOf c v2 => c v1 v2 -> p v0 v1 -> p v0 v2

#throughUnit

throughUnit :: forall c u v0 v1. HasDimap c c => HasIdentity c => HasTerminate c u => ObjectOf c v0 => ObjectOf c v1 => c u v1 -> c v0 v1

#unwrapIso

unwrapIso :: forall p v0 v1. HasDimap Function p => Newtype v0 v1 => ObjectOf Function v1 => ObjectOf Function v0 => p v1 v1 -> p v0 v0

#wrapIso

wrapIso :: forall p v0 v1. HasDimap Function p => Newtype v0 v1 => ObjectOf Function v1 => ObjectOf Function v0 => (v0 -> v1) -> p v0 v0 -> p v1 v1

Modules