functor (P : sig val name : string val shortname : string val descr : string end) -> General_services