Automaton automaton, Comparator<State> dataComparator) {
State[] states = automaton.states;
int size = Math.min(morph1.free,morph2.free);
for(int i=0;i!=size;++i) {
State s1 = states[morph1.i2n[i]];
State s2 = states[morph2.i2n[i]];
if(s1.kind < s2.kind) {
return true;
} else if(s1.kind > s2.kind) {
return false;
} else if(s1.deterministic && !s2.deterministic) {