sig
  module type T =
    sig
      type device =
        Gnuplot_common_.device =
          X
        | Wxt
        | PS of string
        | EPS of string
        | EPSLaTeX of string
        | FIG of string
        | PNG of string
        | MP of string
        | MF of string
        | SVG of string
      type color = int
      type handle = Gnuplot_common_.handle
      type style =
        Gnuplot_common_.style =
          Lines
        | Linespoints
        | Points
        | Dots
        | Impulses
      val device_of_filename : string -> Gnuplot_common.T.device
      val init :
        ?offline:string ->
        ?max_inline:int ->
        ?persist:bool ->
        ?color:bool ->
        ?nxsub:int ->
        ?nysub:int ->
        ?xsize:float ->
        ?ysize:float ->
        ?aspect:float -> Gnuplot_common.T.device -> Gnuplot_common.T.handle
      val close : Gnuplot_common.T.handle -> unit
      val adv : ?sub:int -> Gnuplot_common.T.handle -> unit
      val clear : Gnuplot_common.T.handle -> unit
      val pen : Gnuplot_common.T.handle -> int -> unit
      val color : Gnuplot_common.T.handle -> Gnuplot_common.T.color -> unit
      val pen_width : Gnuplot_common.T.handle -> float -> unit
      val point : Gnuplot_common.T.handle -> int -> unit
      val point_width : Gnuplot_common.T.handle -> float -> unit
      val font : Gnuplot_common.T.handle -> string -> unit
      val font_size : Gnuplot_common.T.handle -> int -> unit
      val title : Gnuplot_common.T.handle -> string -> unit
      val xlabel : Gnuplot_common.T.handle -> string -> unit
      val ylabel : Gnuplot_common.T.handle -> string -> unit
      type coord = Graph | Viewport | Subpage | World
      val text :
        Gnuplot_common.T.handle ->
        ?tag:int ->
        ?frame:float ->
        ?rotate:float ->
        ?coord:Gnuplot_common.T.coord -> float -> float -> string -> unit
      val show :
        ?immediately:bool -> ?tag:int -> Gnuplot_common.T.handle -> unit
      val hide :
        ?immediately:bool -> ?tag:int -> Gnuplot_common.T.handle -> unit
      val auto : tag:int -> Gnuplot_common.T.handle -> unit
      val free : tag:int -> Gnuplot_common.T.handle -> unit
      val win :
        Gnuplot_common.T.handle -> float -> float -> float -> float -> unit
      type axis_opt
      type border_loc = int list
      val axis :
        ?which:Gnuplot_common.T.border_loc ->
        unit -> Gnuplot_common.T.axis_opt
      val border :
        ?which:Gnuplot_common.T.border_loc ->
        unit -> Gnuplot_common.T.axis_opt
      val tics :
        ?which:Gnuplot_common.T.border_loc ->
        ?outward:bool ->
        ?grid:bool ->
        ?minor:int ->
        ?minor_grid:bool ->
        ?log:bool -> ?step:float -> unit -> Gnuplot_common.T.axis_opt
      val labels :
        ?which:Gnuplot_common.T.border_loc ->
        ?prec:int -> ?rotate:bool -> unit -> Gnuplot_common.T.axis_opt
      val box :
        ?x:Gnuplot_common.T.axis_opt list ->
        ?y:Gnuplot_common.T.axis_opt list -> Gnuplot_common.T.handle -> unit
      val env :
        Gnuplot_common.T.handle ->
        ?xaxis:bool ->
        ?xgrid:bool ->
        ?xlog:bool ->
        float ->
        float ->
        ?yaxis:bool -> ?ygrid:bool -> ?ylog:bool -> float -> float -> unit
      val fx :
        Gnuplot_common.T.handle ->
        ?tag:int ->
        ?style:Gnuplot_common.T.style ->
        ?label:string ->
        ?nsamples:int -> (float -> float) -> float -> float -> unit
      val xy_param :
        Gnuplot_common.T.handle ->
        ?tag:int ->
        ?style:Gnuplot_common.T.style ->
        ?label:string ->
        ?nsamples:int -> (float -> float * float) -> float -> float -> unit
      val xy_file :
        Gnuplot_common.T.handle ->
        ?tag:int ->
        ?style:Gnuplot_common.T.style -> ?label:string -> string -> unit
      val box3 :
        ?x:Gnuplot_common.T.axis_opt list ->
        ?y:Gnuplot_common.T.axis_opt list ->
        ?z:Gnuplot_common.T.axis_opt list -> Gnuplot_common.T.handle -> unit
      val env3 :
        Gnuplot_common.T.handle ->
        ?xaxis:bool ->
        ?xgrid:bool ->
        ?xlog:bool ->
        float ->
        float ->
        ?yaxis:bool ->
        ?ygrid:bool ->
        ?ylog:bool ->
        float ->
        float ->
        ?zaxis:bool -> ?zgrid:bool -> ?zlog:bool -> float -> float -> unit
      val fxy :
        Gnuplot_common.T.handle ->
        ?tag:int ->
        ?style:Gnuplot_common.T.style ->
        ?label:string ->
        ?xnsamples:int ->
        ?ynsamples:int ->
        (float -> float -> float) -> float -> float -> float -> float -> unit
      val fxy_param :
        Gnuplot_common.T.handle ->
        ?tag:int ->
        ?style:Gnuplot_common.T.style ->
        ?label:string ->
        ?xnsamples:int ->
        ?ynsamples:int ->
        (float -> float -> float * float * float) ->
        float -> float -> float -> float -> unit
      val xyz_ft :
        Gnuplot_common.T.handle ->
        ?tag:int ->
        ?style:Gnuplot_common.T.style ->
        ?label:string ->
        ?tnsamples:int ->
        (float -> float * float * float) -> float -> float -> unit
    end
end