sig
  type target =
      [ `color_4
      | `index
      | `normal
      | `texture_coord_1
      | `texture_coord_2
      | `texture_coord_3
      | `texture_coord_4
      | `vertex_3
      | `vertex_4 ]
  val map1 :
    target:GlMap.target ->
    float * float -> order:int -> [ `double ] Raw.t -> unit
  val map2 :
    target:GlMap.target ->
    float * float ->
    order:int -> float * float -> order:int -> [ `double ] Raw.t -> unit
  val eval_coord1 : float -> unit
  val eval_coord2 : float -> float -> unit
  val grid1 : n:int -> range:float * float -> unit
  val grid2 :
    n1:int -> range1:float * float -> n2:int -> range2:float * float -> unit
  val eval_mesh1 : mode:[ `line | `point ] -> range:int * int -> unit
  val eval_mesh2 :
    mode:[ `fill | `line | `point ] ->
    range1:int * int -> range2:int * int -> unit
  val eval_point1 : int -> unit
  val eval_point2 : int -> int -> unit
end