module Chapter8.Reornament.Examples.List
(A : Set)
where
open import Level
open import Data.Unit
open import Data.Product
open import Chapter5.IDesc.Fixpoint
open import Chapter5.IDesc.Examples.Nat
open import Chapter8.Ornament
open import Chapter8.Ornament.Examples.List
open import Chapter8.Reornament (ListO A)
Vec : Nat → Set
Vec n = μ reornD (tt , n)
vnil : Vec ze
vnil = ⟨ lift tt , lift tt ⟩
vcons : ∀{n} → A → Vec n → Vec (su n)
vcons a xs = ⟨ (a , (lift tt , lift tt)) , xs , lift tt ⟩