`sig
type gdkFillRule = [ `EVEN_ODD_RULE | `WINDING_RULE ]
type gdkOverlapType = [ `IN | `OUT | `PART ]
val create : unit -> Gdk.region
val destroy : Gdk.region -> unit
val polygon : (int * int) list -> Gdk.Region.gdkFillRule -> Gdk.region
val intersect : Gdk.region -> Gdk.region -> Gdk.region
val union : Gdk.region -> Gdk.region -> Gdk.region
val subtract : Gdk.region -> Gdk.region -> Gdk.region
val xor : Gdk.region -> Gdk.region -> Gdk.region
val union_with_rect : Gdk.region -> Gdk.Rectangle.t -> Gdk.region
val offset : Gdk.region -> x:int -> y:int -> unit
val shrink : Gdk.region -> x:int -> y:int -> unit
val empty : Gdk.region -> bool
val equal : Gdk.region -> Gdk.region -> bool
val point_in : Gdk.region -> x:int -> y:int -> bool
val rect_in : Gdk.region -> Gdk.Rectangle.t -> Gdk.Region.gdkOverlapType
val get_clipbox : Gdk.region -> Gdk.Rectangle.t -> unit
end`