# Module Gdk.Region

    module Region: sig .. end

    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 -> 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 -> gdkOverlapType

    val get_clipbox : Gdk.region -> Gdk.Rectangle.t -> unit