sig
  type ('d, 'k) t = ('d, 'k) Arkode_impl.inner_stepper
  val from_arkstep :
    ('d, 'k) Arkode.ARKStep.session -> ('d, 'k) Arkode.MRIStep.InnerStepper.t
  type 'd evolvefn = float -> float -> '-> unit
  type fullrhs_mode = Arkode_impl.fullrhs_mode = Start | End | Other
  type 'd full_rhsfn =
      float -> '-> '-> Arkode.MRIStep.InnerStepper.fullrhs_mode -> unit
  type 'd resetfn = float -> '-> unit
  val make :
    ?context:Sundials.Context.t ->
    evolve_fn:'Arkode.MRIStep.InnerStepper.evolvefn ->
    full_rhs_fn:'Arkode.MRIStep.InnerStepper.full_rhsfn ->
    ?reset_fn:'Arkode.MRIStep.InnerStepper.resetfn ->
    unit -> ('d, 'k) Arkode.MRIStep.InnerStepper.t
  val add_forcing :
    ('d, 'k) Arkode.MRIStep.InnerStepper.t ->
    float -> ('d, 'k) Nvector.t -> unit
  type 'd forcing_data = {
    tshift : float;
    tscale : float;
    forcing : 'd array;
  }
  val get_forcing_data :
    ('d, 'k) Arkode.MRIStep.InnerStepper.t ->
    'Arkode.MRIStep.InnerStepper.forcing_data
end