Optimise.Checkpointtype state = Make_Embedded(A).Neuron.Optimise.Checkpoint.state = {mutable current_batch : int;mutable batches_per_epoch : int;mutable epochs : float;mutable batches : int;mutable loss : Algodiff.t array;mutable start_at : float;mutable stop : bool;mutable gs : Algodiff.t array array;mutable ps : Algodiff.t array array;mutable us : Algodiff.t array array;mutable ch : Algodiff.t array array array;}type typ = Make_Embedded(A).Neuron.Optimise.Checkpoint.typ = | Batch of int| Epoch of float| Custom of state -> unit| Noneval init_state : int -> float -> stateval print_state_info : state -> unitval print_summary : state -> unitval run : typ -> (string -> unit) -> int -> Algodiff.t -> state -> unitval to_string : typ -> string