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