functor (Id : Sig.Id->
  functor (Maker : functor (Syn : Sig.Syntax-> Sig.Printer(Syn.Ast).S->
    sig  end