sig
  val foldi : init:'-> 'b array -> f:(int -> '-> '-> 'a) -> 'a
  val random_split :
    ?random_state:Core.Std.Random.State.t ->
    'a array -> p:float -> 'a array * 'a array
  val random_sub :
    ?random_state:Core.Std.Random.State.t -> 'a array -> p:float -> 'a array
end