{-# OPTIONS --safe --without-K #-} open import Prelude module Generics.Description.FixedPoint where open import Generics.Telescope open import Generics.Description data μ (D : DataD) (ℓs : DataD.Levels D) (ps : ⟦ PDataD.Param (DataD.applyL D ℓs) ⟧ᵗ) : let Dᵖ = DataD.applyL D ℓs in ⟦ PDataD.Index Dᵖ ps ⟧ᵗ → Set (PDataD.dlevel Dᵖ) where con : let Dᵖ = DataD.applyL D ℓs in ∀ {is} → rewriteLevel (level-pre-fixed-point Dᵖ) (Lift (PDataD.dlevel Dᵖ) (⟦ D ⟧ᵈ (μ D ℓs ps) is)) → μ D ℓs ps is