sig
  type t = {
    remove_trivial : bool;
    initialized : bool;
    mem_access : bool;
    div_mod : bool;
    shift : bool;
    left_shift_negative : bool;
    right_shift_negative : bool;
    signed_overflow : bool;
    unsigned_overflow : bool;
    signed_downcast : bool;
    unsigned_downcast : bool;
    pointer_downcast : bool;
    float_to_int : bool;
    finite_float : bool;
    pointer_call : bool;
    pointer_value : bool;
    bool_value : bool;
  }
  val default :
    ?remove_trivial:bool ->
    ?initialized:bool ->
    ?mem_access:bool ->
    ?div_mod:bool ->
    ?shift:bool ->
    ?left_shift_negative:bool ->
    ?right_shift_negative:bool ->
    ?signed_overflow:bool ->
    ?unsigned_overflow:bool ->
    ?signed_downcast:bool ->
    ?unsigned_downcast:bool ->
    ?pointer_downcast:bool ->
    ?float_to_int:bool ->
    ?finite_float:bool ->
    ?pointer_call:bool ->
    ?pointer_value:bool -> ?bool_value:bool -> unit -> t
  val all : t
  val none : t
end