put eofs at the end of toplevel exprs
use more Applicative