typed TopLevel parsing
better class/toplevel AST