sig
  module Origin :
    sig
      type t = { x : int; y : int; }
      val zero : Wlc.Geometry.Origin.t
      val min :
        Wlc.Geometry.Origin.t ->
        Wlc.Geometry.Origin.t -> Wlc.Geometry.Origin.t
      val max :
        Wlc.Geometry.Origin.t ->
        Wlc.Geometry.Origin.t -> Wlc.Geometry.Origin.t
    end
  module Size :
    sig
      type t = { w : int; h : int; }
      val zero : Wlc.Geometry.Size.t
      val min :
        Wlc.Geometry.Size.t -> Wlc.Geometry.Size.t -> Wlc.Geometry.Size.t
      val max :
        Wlc.Geometry.Size.t -> Wlc.Geometry.Size.t -> Wlc.Geometry.Size.t
    end
  type t = { origin : Wlc.Geometry.Origin.t; size : Wlc.Geometry.Size.t; }
  val contains : Wlc.Geometry.t -> Wlc.Geometry.t -> bool
end