Some methods are declared in FiniteAutomaton but should be moved to a factory to avoid mis-interpretation.
F-ex, calling a1.intersection(a2) returns a new FiniteAutomaton which is the result of the intersection between 'a1' and 'a2' but also modifies 'a1' (which is unexpected).
Some methods are declared in
FiniteAutomatonbut should be moved to a factory to avoid mis-interpretation.F-ex, calling
a1.intersection(a2)returns a newFiniteAutomatonwhich is the result of the intersection between 'a1' and 'a2' but also modifies 'a1' (which is unexpected).