Just a minor observation: when I enter e.g.
functor F () = struct end;
Poly/ML prints back
functor F (sig end) : sig end
Generally, when Functor_Arguments is a Specification, it prints back with an enclosing sig ... end. Even if the whole response is not a valid piece of syntax, it would seem nice to have a valid Functor_Arguments printed back. (I made exactly the same mistake initially!)
Phil