sig
  type bandrange = { mupper : int; mlower : int; }
  val prec_left :
    Cvodes.Adjoint.Spils.Banded.bandrange ->
    (Nvector_serial.data, [> Nvector_serial.kind ])
    Cvodes.Adjoint.Spils.preconditioner
  val prec_right :
    Cvodes.Adjoint.Spils.Banded.bandrange ->
    (Nvector_serial.data, [> Nvector_serial.kind ])
    Cvodes.Adjoint.Spils.preconditioner
  val prec_both :
    Cvodes.Adjoint.Spils.Banded.bandrange ->
    (Nvector_serial.data, [> Nvector_serial.kind ])
    Cvodes.Adjoint.Spils.preconditioner
  val get_work_space :
    [> Nvector_serial.kind ] Cvodes.Adjoint.serial_bsession -> int * int
  val get_num_rhs_evals :
    [> Nvector_serial.kind ] Cvodes.Adjoint.serial_bsession -> int
end