runDfa (DirectState final trans) (x:xs)
  = case [ s | (x',s) <- trans, x == x' ] of
        []    -> False
        (s:_) -> runDfa s xs
runDfa (DirectState final trans) (x:xs)
  = case [ s | (x',s) <- trans, x == x' ] of
        []    -> False
        (s:_) -> runDfa s xs
runDfa (DirectState final trans) (x:xs)
  = case [ s | (x',s) <- trans, x == x' ] of
        []    -> False
        (s:_) -> runDfa s xs