sig
  type t = Gg.box2
  val dim : int
  type v = Gg.v2
  type p = Gg.p2
  type size = Gg.size2
  type m = Gg.m2
  val v : Gg.p2 -> Gg.size2 -> Gg.box2
  val v_mid : Gg.p2 -> Gg.size2 -> Gg.Box2.t
  val empty : Gg.box2
  val o : Gg.box2 -> Gg.p2
  val ox : Gg.box2 -> float
  val oy : Gg.box2 -> float
  val size : Gg.box2 -> Gg.Box2.size
  val w : Gg.box2 -> float
  val h : Gg.box2 -> float
  val zero : Gg.box2
  val unit : Gg.box2
  val of_pts : Gg.p2 -> Gg.p2 -> Gg.box2
  val min : Gg.box2 -> Gg.p2
  val minx : Gg.box2 -> float
  val miny : Gg.box2 -> float
  val max : Gg.box2 -> Gg.p2
  val maxx : Gg.box2 -> float
  val maxy : Gg.box2 -> float
  val mid : Gg.box2 -> Gg.p2
  val midx : Gg.box2 -> float
  val midy : Gg.box2 -> float
  val bl_pt : Gg.box2 -> Gg.p2
  val bm_pt : Gg.box2 -> Gg.p2
  val br_pt : Gg.box2 -> Gg.p2
  val ml_pt : Gg.box2 -> Gg.p2
  val mm_pt : Gg.box2 -> Gg.p2
  val mr_pt : Gg.box2 -> Gg.p2
  val tl_pt : Gg.box2 -> Gg.p2
  val tm_pt : Gg.box2 -> Gg.p2
  val tr_pt : Gg.box2 -> Gg.p2
  val area : Gg.box2 -> float
  val inter : Gg.box2 -> Gg.box2 -> Gg.box2
  val union : Gg.box2 -> Gg.box2 -> Gg.box2
  val inset : Gg.v2 -> Gg.box2 -> Gg.box2
  val round : Gg.box2 -> Gg.box2
  val move : Gg.v2 -> Gg.box2 -> Gg.box2
  val ltr : Gg.m2 -> Gg.box2 -> Gg.box2
  val tr : Gg.m3 -> Gg.box2 -> Gg.box2
  val map_f : (float -> float) -> Gg.box2 -> Gg.box2
  val is_empty : Gg.box2 -> bool
  val is_pt : Gg.box2 -> bool
  val is_seg : Gg.box2 -> bool
  val isects : Gg.box2 -> Gg.box2 -> bool
  val subset : Gg.box2 -> Gg.box2 -> bool
  val mem : Gg.p2 -> Gg.box2 -> bool
  val equal : Gg.box2 -> Gg.box2 -> bool
  val equal_f : (float -> float -> bool) -> Gg.box2 -> Gg.box2 -> bool
  val compare : Gg.box2 -> Gg.box2 -> int
  val compare_f : (float -> float -> int) -> Gg.box2 -> Gg.box2 -> int
  val pp : Format.formatter -> Gg.box2 -> unit
  val pp_f :
    (Format.formatter -> float -> unit) ->
    Format.formatter -> Gg.box2 -> unit
end