functor (M : Map.S->
  sig
    val of_map : 'M.t -> (M.key * 'a, [ `Any ]) OLinq.t
    val reflect :
      (M.key * 'a, [< `Any | `AtMostOne | `One ]) OLinq.t ->
      ('M.t, [ `One ]) OLinq.t
    val run : (M.key * 'a, [< `Any | `AtMostOne | `One ]) OLinq.t -> 'M.t
  end