anchor.diff:    result.FNode := TBinaryOpNodeImpl.Create(boGreaterEq, Value1.FNode, Value2.FNode);
   end;
   
  -class operator Expr.Add(const Value1: Expr.Variable; const Value2: Expr): Expr;
  -begin
  -  result := Expr(Value1) + Value2;
  -end;
  -
  -class operator Expr.Add(const Value1: Expr; const Value2: Expr.Variable): Expr;
  -begin
  -  result := Value1 + Expr(Value2);
  -end;
  -
   class operator Expr.Implicit(const Value: Expr.Constant): Expr;
   begin
     result.FNode := TConstantNodeImpl.Create(Value);
  
positive.code:   result.FNode := TBinaryOpNodeImpl.Create(boMul, Value1.FNode, Value2.FNode);
  end;
  
  class operator Expr.Multiply(const Value1: Expr.Variable; const Value2: Expr): Expr;
  begin
    result := Expr(Value1) * Value2;
  end;
  
  class operator Expr.Multiply(const Value1: Expr; const Value2: Expr.Variable): Expr;
  begin
    result := Value1 * Expr(Value2);
  end;
  
  class operator Expr.Negative(const Value: Expr): Expr;
  begin
    result.FNode := TUnaryOpNodeImpl.Create(uoNegate, Value.FNode);
  
negative.code:     class operator Implicit(const Value: LambdaParam): Expr;
  
      class operator Negative(const Value: Expr): Expr;
      class operator Add(const Value1, Value2: Expr): Expr;
      class operator Multiply(const Value1, Value2: Expr): Expr;
      class operator Subtract(const Value1, Value2: Expr): Expr;
      class operator Equal(const Value1, Value2: Expr): Expr;
      class operator NotEqual(const Value1, Value2: Expr): Expr;
      class operator LessThan(const Value1, Value2: Expr): Expr;
  