let is_one_true ~except:name_opt m =
    match name_opt with
      | None -> (
          try
            Datatype.String.Map.iter
              (fun _ bval -> if bval then failwith "") m
            ;
            false
          with _ -> true
        )
      | Some name -> (
          try
            Datatype.String.Map.iter
              (fun n bval -> if bval && (n <> name) then failwith "") m
            ;
            false
          with _ -> true
        )