if (cachedResult != null) {
genCtx.setCachedGeneratorResult(cachedResult);
}
// realize the rule (call a generator, or do type replacement, etc.)
RebindResult result = rule.realize(logger, genCtx, typeName);
// handle rebind result caching (if enabled)
String resultTypeName =
processCacheableResult(logger, rule, typeName, cachedResult, result);