sig
  val last_and_length : 'a list -> 'a * int
  val gen_int_fun : unit -> unit -> int
  val arg_min_array : ('-> 'b) -> 'a array -> int * 'b
  val arg_max_array : ('-> 'b) -> 'a array -> int * 'b
  val int_overflow : float -> bool
  module Operators :
    sig
      val ( =+ ) : int Pervasives.ref -> int -> unit
      val ( =+. ) : float Pervasives.ref -> float -> unit
      val min : int -> int -> int
      val max : int -> int -> int
      val ( * ) : int -> int -> int
      val ( + ) : int -> int -> int
      val ( - ) : int -> int -> int
      val sign : int -> int
      val ( /+ ) : int -> int -> int
      val ( /- ) : int -> int -> int
    end
  val iter : ('-> 'a) -> int -> '-> 'a
  val goedel : (int -> '-> 'a) -> int -> '-> 'a
  val protect : string -> (unit -> 'a) -> 'a
end