et state
step' nfa s a = lookup' (s, a) $ nfaTransTable nfa

instance Automaton NFA where
  type F NFA s = S.Set s
  step nfa states a =
    S.fold (\
step' :: (State state, Alphabet alpha)
         => NFA state alpha -> state -> alpha -> S.Set state
step' nfa s a = lookup' (s, a) $ nfaTransTable nfa
step' nfa s a = lookup' (s, a) $ nfaTransTable nfa