sig
  type t
  val nmat : Arkode.MRIStep.Coupling.t -> int
  val stages : Arkode.MRIStep.Coupling.t -> int
  val method_order : Arkode.MRIStep.Coupling.t -> int
  val embedding_order : Arkode.MRIStep.Coupling.t -> int
  val explicit_coupling_matrices :
    Arkode.MRIStep.Coupling.t -> Sundials.RealArray.t array array option
  val implicit_coupling_matrices :
    Arkode.MRIStep.Coupling.t -> Sundials.RealArray.t array array option
  val abscissae : Arkode.MRIStep.Coupling.t -> Sundials.RealArray.t
  val make :
    method_order:int ->
    embedding_order:int ->
    ?explicit:Sundials.RealArray.t array array ->
    ?implicit:Sundials.RealArray.t array array ->
    Sundials.RealArray.t -> Arkode.MRIStep.Coupling.t
  type coupling_table =
      KW3
    | GARK_ERK33a
    | GARK_ERK45a
    | GARK_IRK21a
    | GARK_ESDIRK34a
    | GARK_ESDIRK46a
    | IMEX_GARK3a
    | IMEX_GARK3b
    | IMEX_GARK4
  val load_table :
    Arkode.MRIStep.Coupling.coupling_table -> Arkode.MRIStep.Coupling.t
  val mis_to_mri :
    method_order:int ->
    embedding_order:int -> Arkode.ButcherTable.t -> Arkode.MRIStep.Coupling.t
  val copy : Arkode.MRIStep.Coupling.t -> Arkode.MRIStep.Coupling.t
  val space : Arkode.MRIStep.Coupling.t -> int * int
  val write :
    ?logfile:Sundials.Logfile.t -> Arkode.MRIStep.Coupling.t -> unit
end