sig   type t = Gg.m2   val dim : int   type v = Gg.v2   val v : float -> float -> float -> float -> Gg.m2   val of_rows : Gg.v2 -> Gg.v2 -> Gg.m2   val of_cols : Gg.v2 -> Gg.v2 -> Gg.m2   val el : int -> int -> Gg.m2 -> float   val row : int -> Gg.m2 -> Gg.v2   val col : int -> Gg.m2 -> Gg.v2   val zero : Gg.m2   val id : Gg.m2   val of_m3 : Gg.m3 -> Gg.m2   val of_m4 : Gg.m4 -> Gg.m2   val neg : Gg.m2 -> Gg.m2   val add : Gg.m2 -> Gg.m2 -> Gg.m2   val sub : Gg.m2 -> Gg.m2 -> Gg.m2   val mul : Gg.m2 -> Gg.m2 -> Gg.m2   val emul : Gg.m2 -> Gg.m2 -> Gg.m2   val ediv : Gg.m2 -> Gg.m2 -> Gg.m2   val smul : float -> Gg.m2 -> Gg.m2   val transpose : Gg.m2 -> Gg.m2   val trace : Gg.m2 -> float   val det : Gg.m2 -> float   val inv : Gg.m2 -> Gg.m2   val rot2 : float -> Gg.m2   val scale2 : Gg.v2 -> Gg.m2   val map : (float -> float) -> Gg.m2 -> Gg.m2   val mapi : (int -> int -> float -> float) -> Gg.m2 -> Gg.m2   val fold : ('-> float -> 'a) -> '-> Gg.m2 -> 'a   val foldi : ('-> int -> int -> float -> 'a) -> '-> Gg.m2 -> 'a   val iter : (float -> unit) -> Gg.m2 -> unit   val iteri : (int -> int -> float -> unit) -> Gg.m2 -> unit   val for_all : (float -> bool) -> Gg.m2 -> bool   val exists : (float -> bool) -> Gg.m2 -> bool   val equal : Gg.m2 -> Gg.m2 -> bool   val equal_f : (float -> float -> bool) -> Gg.m2 -> Gg.m2 -> bool   val compare : Gg.m2 -> Gg.m2 -> int   val compare_f : (float -> float -> int) -> Gg.m2 -> Gg.m2 -> int   val pp : Format.formatter -> Gg.m2 -> unit   val pp_f :     (Format.formatter -> float -> unit) -> Format.formatter -> Gg.m2 -> unit   val e00 : Gg.m2 -> float   val e01 : Gg.m2 -> float   val e10 : Gg.m2 -> float   val e11 : Gg.m2 -> float end