sig
  type 'd quadrhsfn = float -> '-> '-> unit
  val init :
    ('d, 'k) Cvode.session ->
    'Cvodes.Quadrature.quadrhsfn -> ('d, 'k) Nvector.t -> unit
  val reinit : ('d, 'k) Cvode.session -> ('d, 'k) Nvector.t -> unit
  val get : ('d, 'k) Cvode.session -> ('d, 'k) Nvector.t -> float
  val get_dky :
    ('d, 'k) Cvode.session -> ('d, 'k) Nvector.t -> float -> int -> unit
  type ('d, 'k) tolerance =
      NoStepSizeControl
    | SStolerances of float * float
    | SVtolerances of float * ('d, 'k) Nvector.t
  val set_tolerances :
    ('d, 'k) Cvode.session -> ('d, 'k) Cvodes.Quadrature.tolerance -> unit
  val get_num_rhs_evals : ('d, 'k) Cvode.session -> int
  val get_num_err_test_fails : ('d, 'k) Cvode.session -> int
  val get_err_weights : ('d, 'k) Cvode.session -> ('d, 'k) Nvector.t -> unit
  val get_stats : ('d, 'k) Cvode.session -> int * int
  exception QuadNotInitialized
  exception QuadRhsFuncFailure
  exception FirstQuadRhsFuncFailure
  exception RepeatedQuadRhsFuncFailure
  exception UnrecoverableQuadRhsFuncFailure
end