let add_trans (nfa : nfa)
(s1 : state)
(c : symbol)
(s2 : state) : unit =
add_state nfa s1;
add_state nfa s2;
match c with
| Character c -> Charset.add (which_symbols nfa.delta s1 s2) c
| Epsilon -> Hashset.add (which_states nfa.epsilon s1) s2