module Chapter10.AlgebraicOrnament.Examples.Vec (A : Set) where open import Level hiding (zero ; suc) open import Function open import Data.Unit open import Data.Nat open import Data.Fin hiding (lift) open import Data.Product open import Relation.Binary.PropositionalEquality open import Chapter6.IDesc open import Chapter6.IDesc.Fixpoint open import Chapter6.IDesc.InitialAlgebra open import Chapter6.IDesc.Examples.Nat open import Chapter10.Ornament open import Chapter10.Ornament.Examples.List open import Chapter10.Ornament.Algebra (ListO A) import Chapter10.AlgebraicOrnament open Chapter10.AlgebraicOrnament.Func (⟦ ListO A ⟧orn) ornAlgebra Vec : Nat → Set Vec n = μ algOrnD (tt , n) vnil : Vec ze vnil = ⟨ (zero , lift tt) , refl , lift tt ⟩ vcons : ∀{n} → A → Vec n → Vec (su n) vcons {n} a xs = ⟨ (suc zero , a , n , lift tt) , refl , xs , lift tt ⟩