sig
  type cursor_type =
      [ `ARROW
      | `BASED_ARROW_DOWN
      | `BASED_ARROW_UP
      | `BOAT
      | `BOGOSITY
      | `BOTTOM_LEFT_CORNER
      | `BOTTOM_RIGHT_CORNER
      | `BOTTOM_SIDE
      | `BOTTOM_TEE
      | `BOX_SPIRAL
      | `CENTER_PTR
      | `CIRCLE
      | `CLOCK
      | `COFFEE_MUG
      | `CROSS
      | `CROSSHAIR
      | `CROSS_REVERSE
      | `DIAMOND_CROSS
      | `DOT
      | `DOTBOX
      | `DOUBLE_ARROW
      | `DRAFT_LARGE
      | `DRAFT_SMALL
      | `DRAPED_BOX
      | `EXCHANGE
      | `FLEUR
      | `GOBBLER
      | `GUMBY
      | `HAND1
      | `HAND2
      | `HEART
      | `ICON
      | `IRON_CROSS
      | `LEFTBUTTON
      | `LEFT_PTR
      | `LEFT_SIDE
      | `LEFT_TEE
      | `LL_ANGLE
      | `LR_ANGLE
      | `MAN
      | `MIDDLEBUTTON
      | `MOUSE
      | `PENCIL
      | `PIRATE
      | `PLUS
      | `QUESTION_ARROW
      | `RIGHTBUTTON
      | `RIGHT_PTR
      | `RIGHT_SIDE
      | `RIGHT_TEE
      | `RTL_LOGO
      | `SAILBOAT
      | `SB_DOWN_ARROW
      | `SB_H_DOUBLE_ARROW
      | `SB_LEFT_ARROW
      | `SB_RIGHT_ARROW
      | `SB_UP_ARROW
      | `SB_V_DOUBLE_ARROW
      | `SHUTTLE
      | `SIZING
      | `SPIDER
      | `SPRAYCAN
      | `STAR
      | `TARGET
      | `TCROSS
      | `TOP_LEFT_ARROW
      | `TOP_LEFT_CORNER
      | `TOP_RIGHT_CORNER
      | `TOP_SIDE
      | `TOP_TEE
      | `TREK
      | `UL_ANGLE
      | `UMBRELLA
      | `UR_ANGLE
      | `WATCH
      | `XTERM
      | `X_CURSOR ]
  val create : Gdk.Cursor.cursor_type -> Gdk.cursor
  val create_from_pixmap :
    Gdk.pixmap ->
    mask:Gdk.bitmap ->
    fg:Gdk.color -> bg:Gdk.color -> x:int -> y:int -> Gdk.cursor
  val create_from_pixbuf :
    [ `pixbuf ] Gobject.obj -> x:int -> y:int -> Gdk.cursor
  val get_image : Gdk.cursor -> [ `pixbuf ] Gobject.obj
end