functor (P : sig val presentation : Monoid.Presentation.t end-> T