sig
  type t
  type dim
  type scalar
  val equal : Linear.Vector.t -> Linear.Vector.t -> bool
  val add : Linear.Vector.t -> Linear.Vector.t -> Linear.Vector.t
  val scalar_mul : Linear.Vector.scalar -> Linear.Vector.t -> Linear.Vector.t
  val negate : Linear.Vector.t -> Linear.Vector.t
  val sub : Linear.Vector.t -> Linear.Vector.t -> Linear.Vector.t
  val dot : Linear.Vector.t -> Linear.Vector.t -> Linear.Vector.scalar
  val zero : Linear.Vector.t
  val is_zero : Linear.Vector.t -> bool
  val add_term :
    Linear.Vector.scalar ->
    Linear.Vector.dim -> Linear.Vector.t -> Linear.Vector.t
  val of_term : Linear.Vector.scalar -> Linear.Vector.dim -> Linear.Vector.t
  val enum :
    Linear.Vector.t -> (Linear.Vector.scalar * Linear.Vector.dim) BatEnum.t
  val of_enum :
    (Linear.Vector.scalar * Linear.Vector.dim) BatEnum.t -> Linear.Vector.t
  val of_list :
    (Linear.Vector.scalar * Linear.Vector.dim) list -> Linear.Vector.t
  val coeff : Linear.Vector.dim -> Linear.Vector.t -> Linear.Vector.scalar
  val pivot :
    Linear.Vector.dim ->
    Linear.Vector.t -> Linear.Vector.scalar * Linear.Vector.t
end