sig
val init_back : unit -> string
val back_init : string -> unit
val prob_take : ('a -> float) -> 'a list -> 'a
val prob_extract : ('a -> float) -> 'a list -> 'a * 'a list
module Int : sig val range : int -> int -> int end
module Float : sig val range : float -> float -> float end
module Int32 : sig val range : int32 -> int32 -> int32 end
module Int64 : sig val range : int64 -> int64 -> int64 end
module List : sig val take : 'a list -> 'a end
module Array : sig val take : 'a array -> 'a end
end