sig   type t = Gg.m4   val dim : int   type v = Gg.v4   val v :     float ->     float ->     float ->     float ->     float ->     float ->     float ->     float ->     float ->     float -> float -> float -> float -> float -> float -> float -> Gg.m4   val of_rows : Gg.v4 -> Gg.v4 -> Gg.v4 -> Gg.v4 -> Gg.m4   val of_cols : Gg.v4 -> Gg.v4 -> Gg.v4 -> Gg.v4 -> Gg.m4   val el : int -> int -> Gg.m4 -> float   val row : int -> Gg.m4 -> Gg.M4.v   val col : int -> Gg.m4 -> Gg.M4.v   val zero : Gg.m4   val id : Gg.m4   val of_m3_v3 : Gg.m3 -> Gg.v3 -> Gg.m4   val of_quat : Gg.quat -> Gg.m4   val neg : Gg.m4 -> Gg.m4   val add : Gg.m4 -> Gg.m4 -> Gg.m4   val sub : Gg.m4 -> Gg.m4 -> Gg.m4   val mul : Gg.m4 -> Gg.m4 -> Gg.m4   val emul : Gg.m4 -> Gg.m4 -> Gg.m4   val ediv : Gg.m4 -> Gg.m4 -> Gg.m4   val smul : float -> Gg.m4 -> Gg.m4   val transpose : Gg.m4 -> Gg.m4   val trace : Gg.m4 -> float   val det : Gg.m4 -> float   val inv : Gg.m4 -> Gg.m4   val move2 : Gg.v2 -> Gg.m4   val rot2 : ?pt:Gg.p2 -> float -> Gg.m4   val scale2 : Gg.v2 -> Gg.m4   val rigid2 : move:Gg.v2 -> rot:float -> Gg.m4   val srigid2 : move:Gg.v2 -> rot:float -> scale:Gg.v2 -> Gg.m4   val move3 : Gg.v3 -> Gg.m4   val rot3_map : Gg.v3 -> Gg.v3 -> Gg.m4   val rot3_axis : Gg.v3 -> float -> Gg.m4   val rot3_zyx : Gg.v3 -> Gg.m4   val scale3 : Gg.v3 -> Gg.m4   val rigid3 : move:Gg.v3 -> rot:Gg.v3 * float -> Gg.m4   val rigid3q : move:Gg.v3 -> rot:Gg.quat -> Gg.m4   val srigid3 : move:Gg.v3 -> rot:Gg.v3 * float -> scale:Gg.v3 -> Gg.m4   val srigid3q : move:Gg.v3 -> rot:Gg.quat -> scale:Gg.v3 -> Gg.m4   val ortho :     left:float ->     right:float -> bot:float -> top:float -> near:float -> far:float -> Gg.m4   val persp :     left:float ->     right:float -> bot:float -> top:float -> near:float -> far:float -> Gg.m4   val scale4 : Gg.v4 -> Gg.m4   val map : (float -> float) -> Gg.m4 -> Gg.m4   val mapi : (int -> int -> float -> float) -> Gg.m4 -> Gg.m4   val fold : ('-> float -> 'a) -> '-> Gg.m4 -> 'a   val foldi : ('-> int -> int -> float -> 'a) -> '-> Gg.m4 -> 'a   val iter : (float -> unit) -> Gg.m4 -> unit   val iteri : (int -> int -> float -> unit) -> Gg.m4 -> unit   val for_all : (float -> bool) -> Gg.m4 -> bool   val exists : (float -> bool) -> Gg.m4 -> bool   val equal : Gg.m4 -> Gg.m4 -> bool   val equal_f : (float -> float -> bool) -> Gg.m4 -> Gg.m4 -> bool   val compare : Gg.m4 -> Gg.m4 -> int   val compare_f : (float -> float -> int) -> Gg.m4 -> Gg.m4 -> int   val pp : Format.formatter -> Gg.m4 -> unit   val pp_f :     (Format.formatter -> float -> unit) -> Format.formatter -> Gg.m4 -> unit   val e00 : Gg.m4 -> float   val e01 : Gg.m4 -> float   val e02 : Gg.m4 -> float   val e03 : Gg.m4 -> float   val e10 : Gg.m4 -> float   val e11 : Gg.m4 -> float   val e12 : Gg.m4 -> float   val e13 : Gg.m4 -> float   val e20 : Gg.m4 -> float   val e21 : Gg.m4 -> float   val e22 : Gg.m4 -> float   val e23 : Gg.m4 -> float   val e30 : Gg.m4 -> float   val e31 : Gg.m4 -> float   val e32 : Gg.m4 -> float   val e33 : Gg.m4 -> float end