/** @see jaskell.compiler.JaskellVisitor#visit(Variable) */ public Object visit(Variable a) { Type ret = null; String vname = a.getName(); Expression def = a.lookup(vname); if (def == null) // unknown symbol throw new CompilerException("Unknown variable " + vname); else ret = (Type) def.visit(this); a.setType(ret); return ret; }