functor (M : Map.S) -> sig val red : 'a M.t Reducer.t end