sig
  type kind = BISECTION | FALSEPOS | BRENT
  type t
  val make :
    Gsl_root.Bracket.kind ->
    Gsl_fun.gsl_fun -> float -> float -> Gsl_root.Bracket.t
  external name : Gsl_root.Bracket.t -> string = "ml_gsl_root_fsolver_name"
  external iterate : Gsl_root.Bracket.t -> unit
    = "ml_gsl_root_fsolver_iterate"
  external root : Gsl_root.Bracket.t -> float = "ml_gsl_root_fsolver_root"
  external interval : Gsl_root.Bracket.t -> float * float
    = "ml_gsl_root_fsolver_x_interv"
end