int Types.coord ->
('-> '-> float) ->
(float -> '-> '-> 'a) ->
(int Types.coord -> 'a) ->
object ('b)
  val mutable alpha : float
  val mutable alpha_policy : (int -> float) option
  val dist : '-> '-> float
  val mutable generation : int
  val move : float -> '-> '-> 'a
  val nodes : 'Som.node array array
  val mutable radius : int
  val mutable radius_policy : (int -> int) option
  val size : int Types.coord
  method dump : (int -> int -> '-> unit) -> (unit -> unit) -> unit
  method find_node : '-> int Types.coord
  method get_alpha : float option
  method get_alpha_policy : (int -> float) option
  method get_radius : int option
  method get_radius_policy : (int -> int) option
  method get_value : int Types.coord -> 'a
  method learn : ('-> 'a option) -> unit
  method move_node : int -> int -> float -> '-> unit
  method set_alpha : float -> unit
  method set_alpha_policy : (int -> float) -> unit
  method set_radius : int -> unit
  method set_radius_policy : (int -> int) -> unit
  method train : '-> unit
end