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