'Given a state |s| of machine |m|, return a new state
reachable from |s| on character |c| or epsilon.'

def build_opt(self, m, initial_state, c):

    s = m.new_state()
    initial_state.link_to(s)
    initial_state.add_transition(c, s)
    return s
