} catch (ParserException e) {
Util.abort("parsing error: " + e);
return null;
}
Scope s = Scope.buildInitTypeScope();
Value ret = program.typecheck(s);
while (!uncalled.isEmpty()) {
List<FunType> toRemove = new ArrayList<>(uncalled);
for (FunType ft : toRemove) {
invokeUncalled(ft, s);