private static TypeScope trootScope() {
TypeScope res = new TypeScope();
res.define("+", Type.Function(Arrays.asList(Type.INT, Type.INT), Type.INT));
res.define("add", Type.Function(Arrays.asList(Type.INT, Type.INT), Type.INT));
//res.define("-", Type.Function(Arrays.asList(Type.INT, Type.INT), Type.INT));
res.define("*", Type.Function(Arrays.asList(Type.INT, Type.INT), Type.INT));
//res.define("/", Type.Function(Arrays.asList(Type.INT, Type.INT), Type.INT));
//res.define("%", Type.Function(Arrays.asList(Type.INT, Type.INT), Type.INT));
//res.define("=", Type.Function(Arrays.asList(Type.INT, Type.INT), Type.BOOL));
//res.define("int2str", Type.Function(Type.INT, Type.STR));