sig
  val set_default_ncores : int -> unit
  val get_default_ncores : unit -> int
  type 'a sequence = L of 'a list | A of 'a array
  val parmapfold :
    ?ncores:int ->
    ?chunksize:int ->
    ('a -> 'b) ->
    'a Parmap.sequence -> ('b -> 'c -> 'c) -> 'c -> ('c -> 'c -> 'c) -> 'c
  val parfold :
    ?ncores:int ->
    ?chunksize:int ->
    ('a -> 'b -> 'b) -> 'a Parmap.sequence -> 'b -> ('b -> 'b -> 'b) -> 'b
  val parmap :
    ?ncores:int ->
    ?chunksize:int -> ('a -> 'b) -> 'a Parmap.sequence -> 'b list
  val pariter :
    ?ncores:int ->
    ?chunksize:int -> ('a -> unit) -> 'a Parmap.sequence -> unit
  val parmapifold :
    ?ncores:int ->
    ?chunksize:int ->
    (int -> 'a -> 'b) ->
    'a Parmap.sequence -> ('b -> 'c -> 'c) -> 'c -> ('c -> 'c -> 'c) -> 'c
  val parmapi :
    ?ncores:int ->
    ?chunksize:int -> (int -> 'a -> 'b) -> 'a Parmap.sequence -> 'b list
  val pariteri :
    ?ncores:int ->
    ?chunksize:int -> (int -> 'a -> unit) -> 'a Parmap.sequence -> unit
  val array_parmap :
    ?ncores:int -> ?chunksize:int -> ('a -> 'b) -> 'a array -> 'b array
  val array_parmapi :
    ?ncores:int ->
    ?chunksize:int -> (int -> 'a -> 'b) -> 'a array -> 'b array
  exception WrongArraySize
  type buf
  val init_shared_buffer : float array -> Parmap.buf
  val array_float_parmap :
    ?ncores:int ->
    ?chunksize:int ->
    ?result:float array ->
    ?sharedbuffer:Parmap.buf -> ('a -> float) -> 'a array -> float array
  val array_float_parmapi :
    ?ncores:int ->
    ?chunksize:int ->
    ?result:float array ->
    ?sharedbuffer:Parmap.buf ->
    (int -> 'a -> float) -> 'a array -> float array
  val debugging : bool -> unit
  val redirecting : bool -> unit