sig
  external get_id_string : unit -> string = "mlmt_sfmt_19937_get_id_string"
  val min_int32_array_length : int
  val min_int64_array_length : int
  type t
  external make_int32 : int32 -> Sfmt_19937.t = "mlmt_sfmt_19937_make_int32"
  external make_int32_array : int32 array -> Sfmt_19937.t
    = "mlmt_sfmt_19937_make_int32_array"
  val make : int array -> Sfmt_19937.t
  val make_self_init : unit -> Sfmt_19937.t
  external copy : Sfmt_19937.t -> Sfmt_19937.t = "mlmt_sfmt_19937_copy"
  external bits32 : Sfmt_19937.t -> (int32 [@unboxed])
    = "mlmt_sfmt_19937_bits32" "mlmt_sfmt_19937_bits32_unboxed" [@@noalloc]
  external bits64 : Sfmt_19937.t -> (int64 [@unboxed])
    = "mlmt_sfmt_19937_bits64" "mlmt_sfmt_19937_bits64_unboxed" [@@noalloc]
  external float_bits32 : Sfmt_19937.t -> (float [@unboxed])
    = "mlmt_sfmt_19937_float_bits32" "mlmt_sfmt_19937_float_bits32_unboxed"
    [@@noalloc]
  external float_bits53 : Sfmt_19937.t -> (float [@unboxed])
    = "mlmt_sfmt_19937_float_bits53" "mlmt_sfmt_19937_float_bits53_unboxed"
    [@@noalloc]
  val fill_int32_bigarray :
    Sfmt_19937.t ->
    (int32, Stdlib.Bigarray.int32_elt, Stdlib.Bigarray.c_layout)
    Stdlib.Bigarray.Array1.t -> int -> int -> unit
  val fill_int64_bigarray :
    Sfmt_19937.t ->
    (int64, Stdlib.Bigarray.int64_elt, Stdlib.Bigarray.c_layout)
    Stdlib.Bigarray.Array1.t -> int -> int -> unit
  val int : Sfmt_19937.t -> int -> int
  val int32 : Sfmt_19937.t -> int32 -> int32
  val int64 : Sfmt_19937.t -> int64 -> int64
  val nativeint : Sfmt_19937.t -> nativeint -> nativeint
  val float : Sfmt_19937.t -> float -> float
  val bool : Sfmt_19937.t -> bool
  val import : int32 array * int -> Sfmt_19937.t
  external export : Sfmt_19937.t -> int32 array * int
    = "mlmt_sfmt_19937_export"
end