change sequence variants of first and derives_epsilon to take a
null-terminated array
add (untested) follow set computation