very cool. @genkuroki. just read your post about the Problem-Algorithm-Solver pattern As someone who never uses globals, or modules outside of the parent source file in a package, I am amazed at your awareness and control of Julia scope.
However, I wonder if there is an irremovable disadvantage to your pattern in the case where you want to have multiple actors acting in parallel, each with different state, each changing this potential parameter . I think I need this “update(state, action) → state” mapping as a closed, stateless function.
Sadly for my use case, the transparency of a hard coded Euler solver may ultimately be unbeatable here. But I still learned a lot and hope this post will be helpful for HamiltonianProblem users in the future. Thanks very much!