functor (M : Map.S->
  functor (P : sig type p = M.key val p : p predicate end->
    sig
      val exists :
        'Specification.predicate -> 'M.t Specification.predicate
      val for_all :
        'Specification.predicate -> 'M.t Specification.predicate
    end