@Override
  public ConstraintsPrecision join(ConstraintsPrecision pOther) {
    assert pOther instanceof RefinableConstraintsPrecision;
    final ConstraintsPrecision otherDelegate = ((RefinableConstraintsPrecision) pOther).delegate;

    return new RefinableConstraintsPrecision(delegate.join(otherDelegate));
  }
 @Override
 public int hashCode() {
   int result = precisionType.hashCode();
   result = 31 * result + delegate.hashCode();
   return result;
 }
 @SuppressWarnings("EqualsWhichDoesntCheckParameterClass")
 @Override
 public boolean equals(Object o) {
   return delegate.equals(o);
 }
 @Override
 public ConstraintsPrecision withIncrement(Increment pIncrement) {
   return new RefinableConstraintsPrecision(delegate.withIncrement(pIncrement));
 }
 @Override
 public boolean isTracked(Constraint pConstraint, CFANode pLocation) {
   return delegate.isTracked(pConstraint, pLocation);
 }
 @Override
 public String toString() {
   return delegate.toString();
 }