open import Function open import Data.Product open import Chapter1.Logic open import Chapter2.IDesc open import Chapter2.IDesc.Fixpoint open import Chapter2.IDesc.InitialAlgebra open import Chapter5.Ornament module Chapter5.Reornament.Algebra {I K : Set} {D : func K K} {u : I → K} (o : orn D u u) where open import Chapter5.Reornament o open import Chapter5.Ornament.Algebra {u = forgetIdx} reorn reornAlgebra : ⟦ reornD ⟧func (μ ⟦ o ⟧orn ∘ forgetIdx) ⇒ μ ⟦ o ⟧orn ∘ forgetIdx reornAlgebra {i} = ornAlgebra {i} forgetReornament : μ reornD ⇒ μ ⟦ o ⟧orn ∘ forgetIdx forgetReornament {i} xs = fold reornD (λ {i} → reornAlgebra {i}) {i} xs