module type Make_arg = Flags_intf.Make_argval known : (Flags_intf.Int63.t * string) listflag, name in known means that the bit(s) in flag is (are) called
      name; i.e. if bit_and flags flag = flag, then the bit(s) is (are) set and name
      will appear in sexp_of_t flags.  known is only used to make sexp_of_t's output
      human readable.
      The flags in the output of sexp_of_t will occur in the same order as they appear
      in known.
It is allowed to have a single flag with multiple bits set.
      It is an error if different flags intersect, and allow_intersecting = false.
val allow_intersecting : boolallow_intersecting says whether to allow intersecting known flags.  It is
      common to do allow_intersecting = false, however in some situations, e.g.
      Unix open flags, the flags intersect.val should_print_error : boolshould_print_error says whether to print an error message if there is an error in
      the known flags.  It is typical to use should_print_error = true because
      Flags.Make is applied at the module level, where the exception raised isn't
      displayed nicely.