{-# OPTIONS --safe --cubical #-} module Container where open import Prelude Container : Type₁ Container = Σ[ Shape ⦂ Type ] × (Shape → Type) ⟦_⟧ : ∀ {ℓ} → Container → Type ℓ → Type ℓ ⟦ S , P ⟧ X = Σ[ s ⦂ S ] × (P s → X) cmap : {C : Container} → (A → B) → ⟦ C ⟧ A → ⟦ C ⟧ B cmap f xs = xs .fst , λ i → f (xs .snd i)