sig
  type kind = Undefined | Int | Float | Byte | Percentage
  type style = Full | Dashed | Empty
  type t
  type elt
  val create :
    ?width:int ->
    ?height:int ->
    ?timeout:int ->
    ?steps:int ->
    ?grid_divx:int ->
    ?grid_divy:int ->
    ?lborder:float ->
    ?rborder:float ->
    ?vborder:float ->
    ?xaxis:int ->
    ?yaxis:int ->
    ?packing:(GObj.widget -> unit) -> ?kind:Graph.kind -> unit -> Graph.t
  val add :
    Graph.t ->
    Protocol.tag ->
    ?name:string ->
    (unit -> float * Graph.style) ->
    Graph.kind -> float * float * float -> Graph.elt
  val remove : Graph.t -> Graph.elt -> unit
  val set_visible : Graph.elt -> bool -> unit
  val set_preferences :
    Graph.t ->
    step:int -> divx:int -> divy:int -> xaxis:int -> yaxis:int -> unit
  val set_color : Graph.elt -> float * float * float -> unit
  val get_color : Graph.elt -> float * float * float
  val get_nb_fct : Graph.t -> int
  val get_kind : Graph.t -> Graph.kind
  val stop : Graph.t -> unit
  val resume : Graph.t -> unit
  val restart : Graph.t -> int -> unit
  val clear : Graph.t -> unit
  val set_timer : Graph.t -> int -> unit
  val get_timer : Graph.t -> GMain.Timeout.id option
  val get_period : Graph.t -> int
  val get_steps : Graph.t -> int
  val get_gridx : Graph.t -> int
  val get_gridy : Graph.t -> int
  val get_xaxis : Graph.t -> int
  val get_yaxis : Graph.t -> int
end