sig
  val setup :
    ('d, 'k, 's, [ `Sens ]) Sundials_NonlinearSolver.t ->
    y:('d, 'k) Sundials_NonlinearSolver.Senswrapper.t -> '-> unit
  val solve :
    ('d, 'k, 's, [ `Sens ]) Sundials_NonlinearSolver.t ->
    y0:('d, 'k) Sundials_NonlinearSolver.Senswrapper.t ->
    ycor:('d, 'k) Sundials_NonlinearSolver.Senswrapper.t ->
    w:('d, 'k) Sundials_NonlinearSolver.Senswrapper.t ->
    float -> bool -> '-> unit
  val set_sys_fn :
    ('d, 'k, 's, [ `Sens ]) Sundials_NonlinearSolver.t ->
    (('d, 'k) Sundials_NonlinearSolver.Senswrapper.t, 's)
    Sundials_NonlinearSolver.sysfn -> unit
  val set_lsolve_fn :
    ('d, 'k, 's, [ `Sens ]) Sundials_NonlinearSolver.t ->
    (('d, 'k) Sundials_NonlinearSolver.Senswrapper.t, 's)
    Sundials_NonlinearSolver.lsolvefn -> unit
  val assert_not_oconvtestfn :
    ('nv1, 's, [ `Sens ]) Sundials_NonlinearSolver.convtestfn ->
    ('nv2, 's, [ `Sens ]) Sundials_NonlinearSolver.convtestfn
  val set_convtest_fn :
    ('d, 'k, 's, [ `Sens ]) Sundials_NonlinearSolver.t ->
    (('d, 'k) Sundials_NonlinearSolver.Senswrapper.t, 's, [ `Sens ])
    Sundials_NonlinearSolver.convtestfn -> unit
end