module Intro (C : Set1) (HomC : C -> C -> Set) (idC : (c : C) -> HomC c c) (_∘C_ : {a b c : C} -> HomC b c -> HomC a b -> HomC a c) where import Prelude open Prelude C HomC idC _∘C_ import posIR open posIR C HomC idC _∘C_ mutual {-# NO_POSITIVITY_CHECK #-} data U (c : IR+) : Set where intro : index (⟦ c ⟧IR+ (U c , T)) -> U c {-# TERMINATING #-} T : {c : IR+} -> U c -> C T {c} (intro x) = fam (⟦ c ⟧IR+ (U c , T)) x introMorphism : {c : IR+} -> HomFamC (⟦ c ⟧IR+ (U c , T)) (U c , T) introMorphism = intro , (λ x → idC _)