'a list ->
'->
object
  val actions : 'a array
  val mutable alpha : float
  val mutable beta : float
  val mutable current_state : 'b
  val mutable delta : float
  val mutable last_action : int
  val num_actions : int
  val mutable num_states : int
  val mutable q_table : ('b * float array) list
  val mutable states : ('b * int) list
  method get_action : unit -> 'a
  method private get_best_action : unit -> int
  method percieve_result : '-> float -> unit
end