sig
  type t = Gg.v3
  val dim : int
  type m = Gg.m3
  val v : float -> float -> float -> Gg.v3
  val comp : int -> Gg.v3 -> float
  val x : Gg.v3 -> float
  val y : Gg.v3 -> float
  val z : Gg.v3 -> float
  val ox : Gg.v3
  val oy : Gg.v3
  val oz : Gg.v3
  val zero : Gg.v3
  val infinity : Gg.v3
  val neg_infinity : Gg.v3
  val basis : int -> Gg.v3
  val of_tuple : float * float * float -> Gg.v3
  val to_tuple : Gg.v3 -> float * float * float
  val of_spherical : Gg.v3 -> Gg.v3
  val to_spherical : Gg.v3 -> Gg.v3
  val of_v2 : Gg.v2 -> z:float -> Gg.v3
  val of_v4 : Gg.v4 -> Gg.v3
  val neg : Gg.v3 -> Gg.v3
  val add : Gg.v3 -> Gg.v3 -> Gg.v3
  val sub : Gg.v3 -> Gg.v3 -> Gg.v3
  val mul : Gg.v3 -> Gg.v3 -> Gg.v3
  val div : Gg.v3 -> Gg.v3 -> Gg.v3
  val smul : float -> Gg.v3 -> Gg.v3
  val half : Gg.v3 -> Gg.v3
  val cross : Gg.v3 -> Gg.v3 -> Gg.v3
  val dot : Gg.v3 -> Gg.v3 -> float
  val norm : Gg.v3 -> float
  val norm2 : Gg.v3 -> float
  val unit : Gg.v3 -> Gg.v3
  val spherical : float -> float -> float -> Gg.v3
  val azimuth : Gg.v3 -> float
  val zenith : Gg.v3 -> float
  val homogene : Gg.v3 -> Gg.v3
  val mix : Gg.v3 -> Gg.v3 -> float -> Gg.v3
  val ltr : Gg.m3 -> Gg.v3 -> Gg.v3
  val tr : Gg.m4 -> Gg.v3 -> Gg.v3
  val ( + ) : Gg.v3 -> Gg.v3 -> Gg.v3
  val ( - ) : Gg.v3 -> Gg.v3 -> Gg.v3
  val ( * ) : float -> Gg.v3 -> Gg.v3
  val ( / ) : Gg.v3 -> float -> Gg.v3
  val map : (float -> float) -> Gg.v3 -> Gg.v3
  val mapi : (int -> float -> float) -> Gg.v3 -> Gg.v3
  val fold : ('-> float -> 'a) -> '-> Gg.v3 -> 'a
  val foldi : ('-> int -> float -> 'a) -> '-> Gg.v3 -> 'a
  val iter : (float -> unit) -> Gg.v3 -> unit
  val iteri : (int -> float -> unit) -> Gg.v3 -> unit
  val for_all : (float -> bool) -> Gg.v3 -> bool
  val exists : (float -> bool) -> Gg.v3 -> bool
  val equal : Gg.v3 -> Gg.v3 -> bool
  val equal_f : (float -> float -> bool) -> Gg.v3 -> Gg.v3 -> bool
  val compare : Gg.v3 -> Gg.v3 -> int
  val compare_f : (float -> float -> int) -> Gg.v3 -> Gg.v3 -> int
  val pp : Format.formatter -> Gg.v3 -> unit
  val pp_f :
    (Format.formatter -> float -> unit) -> Format.formatter -> Gg.v3 -> unit
end