sig
  type ('a, 'b) t constraint 'a = [> `canvasitem | `gtk ]
  val group : (GnomeCanvas.group, GnomeCanvas.group_p) GnomeCanvas.??.t
  val rect :
    ([ `canvasRE | `canvasitem | `canvasrect | `canvasshape | `gtk ],
     GnomeCanvas.re_p)
    GnomeCanvas.??.t
  val ellipse :
    ([ `canvasRE | `canvasellipse | `canvasitem | `canvasshape | `gtk ],
     GnomeCanvas.re_p)
    GnomeCanvas.??.t
  val text :
    ([ `canvasitem | `canvastext | `gtk ], GnomeCanvas.text_p)
    GnomeCanvas.??.t
  val line :
    ([ `canvasitem | `canvasline | `gtk ], GnomeCanvas.line_p)
    GnomeCanvas.??.t
  val bpath :
    ([ `canvasbpath | `canvasitem | `canvasshape | `gtk ],
     GnomeCanvas.bpath_p)
    GnomeCanvas.??.t
  val pixbuf :
    ([ `canvasitem | `canvaspixbuf | `gtk ], GnomeCanvas.pixbuf_p)
    GnomeCanvas.??.t
  val polygon :
    ([ `canvasitem | `canvaspolygon | `canvasshape | `gtk ],
     GnomeCanvas.polygon_p)
    GnomeCanvas.??.t
  val widget :
    ([ `canvasitem | `canvaswidget | `gtk ], GnomeCanvas.widget_p)
    GnomeCanvas.??.t
  val rich_text :
    (GnomeCanvas.rich_text, GnomeCanvas.rich_text_p) GnomeCanvas.??.t
  val shape :
    ([ `canvasitem | `canvasshape | `gtk ], GnomeCanvas.shape_p)
    GnomeCanvas.??.t
  val rect_ellipse :
    ([ `canvasRE | `canvasitem | `canvasshape | `gtk ], GnomeCanvas.re_p)
    GnomeCanvas.??.t
  val points : Gobject.g_type
  val is_a :
    'Gobject.obj -> ([> `canvasitem | `gtk ], 'b) GnomeCanvas.??.-> bool
  val name : ([> `canvasitem | `gtk ], 'a) GnomeCanvas.??.-> string
end