module Orn.AlgebraicOrnament.Examples.Vec (A : Set) where 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 IDesc.IDesc open import IDesc.Fixpoint open import IDesc.InitialAlgebra open import IDesc.Examples.Nat open import Orn.Ornament open import Orn.Ornament.Examples.List open import Orn.Ornament.Algebra (ListO A) import Orn.AlgebraicOrnament open Orn.AlgebraicOrnament.Func (⟦ ListO A ⟧orn) forgetAlg Vec : Nat → Set Vec n = μ algOrnD (tt , n) vnil : Vec ze vnil = ⟨ (zero , tt) , refl , tt ⟩ vcons : ∀{n} → A → Vec n → Vec (su n) vcons {n} a xs = ⟨ (suc zero , a , n) , refl , xs ⟩