sig
  type t
  type transfer = Sigmoid | Linear | Zero
  val weight_init : float Pervasives.ref
  val make_net : int -> int -> int list -> Mlp.transfer list -> Mlp.t
  val make_classifier : int -> int -> int list -> Mlp.t
  val make_approximator : int -> int -> int list -> Mlp.t
  val copy : Mlp.t -> Mlp.t
  val get_in_size : Mlp.t -> int
  val get_out_size : Mlp.t -> int
  val get_depth : Mlp.t -> int
  val conc : Mlp.t -> Mlp.t -> Mlp.t
  val conc_in_place : Mlp.t -> Mlp.t -> Mlp.t
  val evaluate : Mlp.t -> float array -> float array
  val train :
    float ->
    ?decay:float -> unit -> Mlp.t -> float array * float array -> Mlp.t
  val train_in_place :
    float ->
    ?decay:float -> unit -> Mlp.t -> float array * float array -> unit
  val squared_error : Mlp.t -> float array * float array -> float
end