open import Level
open import Function

open import Data.Product

open import Chapter2.Logic

open import Chapter5.IDesc
open import Chapter5.IDesc.Fixpoint
open import Chapter5.IDesc.InitialAlgebra

open import Chapter8.Ornament

module Chapter8.Reornament.Algebra 
           { : Level}
           {I K : Set }
           {D : func  K K}
           {u : I  K}
           (o : orn D u u) where

open import Chapter8.Reornament o
open import Chapter8.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