module Chapter2.Desc.Tagged where open import Data.Nat open import Data.Fin open import Data.Vec open import Data.Product open import Chapter2.Desc tagDesc : Set₁ tagDesc = Σ[ n ∈ ℕ ] Vec Desc n toDesc : tagDesc → Desc toDesc (n , ds) = `Σ (Fin n) (λ k → lookup k ds) toTagged : Desc → tagDesc toTagged d = ( 1 , d ∷ [])