Per risolvere questo problema (commento sul print):

Secondo me dovremmo trattare gli operatori come se fossero funzioni, e.g.:
+ : (int, int) => int
printInt : (int) => void
&& : (bool, bool) => bool
Sarebbe opportuno che gli operatori fossero dei FunNode disponibili in tutti gli scope.
Inoltre per definire ad esempio la funzione print e' necessario che questa sia definita in Java e non in Fool. Sto indagando su qual e' il modo piu' opportuno per gestire la cosa.