Contrasting that with another lib: https://github.com/cdorrat/reduce-fsm Which seems to make returning to states a bit more explicit (not sure if thats better or worse).
@drewverlee you never "return" to "previous" states
you at state 'x' and the allowed transitions are 'y' and 'z'
if you are in a cycle, there is no ordering
you always move forward
the only exceptions are the entry point and the end/final state
@ivan.kanak_clojurians maybe i’m using the wrong terminology, if you look at the graph above i’m not sure how else to describe :error taking someone to 0. I think its probably correct to say its not the same ‘state’.
Going from (2) to (0) is a move forward, even if it feels like (0) is "before" (1). It is not "before", but a prerequisite state to get to (1). You never go backwards, you never take back the fact that you got to (2) through (1). You are always progressing, and the progressions happen by choosing one of the available/valid transitions. Following the transitions you always move forward.
Pushdown automata have local state you can bang on, sorta