{-# OPTIONS --safe --without-K #-} module Categories.Category.Instance.DagCats where open import Categories.Category.Core using (Category) open import Categories.Category.Dagger using (DaggerCategory) open import Categories.Functor.Dagger using (DaggerFunctor; id; _∘F†_) open import Categories.NaturalTransformation.NaturalIsomorphism open import Function.Base using (_on_) open import Level using (suc; _⊔_) DagCats : ∀ o ℓ e → Category (suc (o ⊔ ℓ ⊔ e)) (o ⊔ ℓ ⊔ e) (o ⊔ ℓ ⊔ e) DagCats o ℓ e = record { Obj = DaggerCategory o ℓ e ; _⇒_ = DaggerFunctor ; _≈_ = NaturalIsomorphism on functor ; id = id ; _∘_ = _∘F†_ ; assoc = λ {_ _ _ _ F G H} → associator (functor F) (functor G) (functor H) ; sym-assoc = λ {_ _ _ _ F G H} → sym-associator (functor F) (functor G) (functor H) ; identityˡ = unitorˡ ; identityʳ = unitorʳ ; identity² = unitor² ; equiv = record { refl = refl ; sym = sym ; trans = trans } ; ∘-resp-≈ = _ⓘₕ_ } where open DaggerFunctor