See: https://github.com/SciML/CommonSolve.jl - [ ] implement struct ProblemType - [ ] implement struct SolverType - [ ] implement struct SolutionType - [ ] implement function init() - [ ] implement function solve!() - [ ] implement function solve() ```julia solve(args...; kwargs...) = solve!(init(args...; kwargs...)) ``` ```julia init(::ProblemType, args...; kwargs...)::SolverType solve!(::SolverType)::SolutionType ```