anchor.diff:    visitIntegerLiteral(IntegerLiteral n) {
       super.visitIntegerLiteral(n);
       // {int} \in [n]
  -    types.put(n, _getAbstractType(new Name('int'), constraintAnalysis.dartCore, source));
  +    types.put(n, _getAbstractType(new Name("int"), constraintAnalysis.dartCore, source));
     }
     
     visitDoubleLiteral(DoubleLiteral n) {
  
positive.code:     
      // exp1 op exp2
      TypeIdentifier leftIdent = new ExpressionTypeIdentifier(be.leftOperand);
      TypeIdentifier nodeIdent = new ExpressionTypeIdentifier(be);
      
  
      //  \forall \gamma \in [exp1], 
      //  \forall (\alpha -> \beta) \in [ \gamma .op ] => 
      //      \alpha \in [exp2] && \beta \in [exp1 op exp2].
      foreach(leftIdent).update((AbstractType gamma) {
        TypeIdentifier methodIdent = new PropertyTypeIdentifier(gamma, new Name.FromToken(be.operator));
        _methodCall(methodIdent, <Expression>[be.rightOperand], nodeIdent);
      });
    }
    
    visitIsExpression(IsExpression n){
  
negative.code:      super.visitVariableDeclaration(vd);
       
       if (!elementAnalysis.containsElement(vd))
         engine.errors.addError(new EngineError("A VariableDeclaration was visited, but didnt have a associated elemenet.", source.source, vd.offset, vd.length ), true);
       
       Element element = elementAnalysis.elements[vd];
       if (element is FieldElement){
  