sig
  type gpc_clipop = Difference | Intersection | ExclusiveOR | Union
  type gpc_vertex = { x : float; y : float; }
  type gpc_contour = int * Cpdfclip.gpc_vertex array
  type gpc_polygon = int * int array * Cpdfclip.gpc_contour array
  val nullpoly : Cpdfclip.gpc_polygon
  val gpcml_printpolygon : Cpdfclip.gpc_polygon -> unit
  val gpc_polygon_of_box :
    float -> float -> float -> float -> Cpdfclip.gpc_polygon
  val make_gpcpolygon :
    bool array -> Cpdfclip.gpc_vertex array array -> Cpdfclip.gpc_polygon
  val gpcml_clippolygon :
    Cpdfclip.gpc_clipop ->
    Cpdfclip.gpc_polygon -> Cpdfclip.gpc_polygon -> Cpdfclip.gpc_polygon
end