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  [])