sig
  type port
  val a : Mindstorm.Motor.port
  val b : Mindstorm.Motor.port
  val c : Mindstorm.Motor.port
  val all : Mindstorm.Motor.port
  type regulation = [ `Idle | `Motor_speed | `Motor_sync ]
  type run_state = [ `Idle | `Ramp_down | `Ramp_up | `Running ]
  type state = {
    speed : int;
    motor_on : bool;
    brake : bool;
    regulation : Mindstorm.Motor.regulation;
    turn_ratio : int;
    run_state : Mindstorm.Motor.run_state;
    tach_limit : int;
  }
  val speed :
    ?tach_limit:int ->
    ?brake:bool ->
    ?sync:bool -> ?turn_ratio:int -> int -> Mindstorm.Motor.state
  val set :
    ?check_status:bool ->
    'Mindstorm.conn ->
    Mindstorm.Motor.port -> Mindstorm.Motor.state -> unit
  val get :
    'Mindstorm.conn ->
    Mindstorm.Motor.port -> Mindstorm.Motor.state * int * int * int
  val reset_pos :
    ?check_status:bool ->
    'Mindstorm.conn -> ?relative:bool -> Mindstorm.Motor.port -> unit
end