Result<Type> result_1 = typeInternal(G, _trace_, _right);
checkAssignableTo(result_1.getFirst(), Type.class);
rightType = (Type) result_1.getFirst();
{
RuleFailedException previousFailure = null;
<BUG>try {
boolean _or = false;
if ((leftType instanceof StringType)) {
_or = true;
} else {
_or = (rightType instanceof StringType);
}
if (!_or) {</BUG>
sneakyThrowRuleFailedException("leftType instanceof StringType || rightType instanceof StringType");

Result<Type> result_1 = typeInternal(G, _trace_, _right);
checkAssignableTo(result_1.getFirst(), IntType.class);
intType = (IntType) result_1.getFirst();
return new Result<Type>(intType);
