open import Data.Product

open import Chapter1.Logic

open import Chapter2.IDesc
open import Chapter2.IDesc.Fixpoint
open import Chapter2.IDesc.InitialAlgebra

module Chapter5.AlgebraicOrnament.Make
           {K : Set}
           {X : K  Set}
           (D : func K K)
           (α :  D ⟧func X  X) where

open import Chapter5.AlgebraicOrnament D α

postulate 
  makeAlg : ∀{k} 
            (x : μ D k)  μ algOrnD (k , fold D α x)