better automata through combinators