/** @see jaskell.compiler.JaskellVisitor#visit(Constructor) */ public Object visit(Constructor a) { Type ret = a.getType(); if (ret != null) return ret; String vname = a.getName(); ConstructorDefinition def = (ConstructorDefinition) a.lookup(vname); if (def == null) // unknown symbol throw new CompilerException("Unknown constructor " + vname); ret = new TypeInstantiator(def.getType()).instance(); a.setType(ret); return ret; }