}
      for (final Map.Entry<CompiledFunctionDefinition, Set<ValueSpecification>> functionResult : functionResults.entrySet()) {
        final CompiledFunctionDefinition function = functionResult.getKey();
        for (final ValueSpecification result : functionResult.getValue()) {
          if (isSatisfied(requirement, result)) {
            final FunctionExclusionGroup group = (_functionExclusionGroups == null) ? null : _functionExclusionGroups.getExclusionGroup(function.getFunctionDefinition());
            if ((group == null) || visitedFunctions.add(group)) {
              s_logger.debug("Resolving {} to satisfy {}", result, requirement);
              final Set<ValueSpecification> resolved = resultWithSatisfiedRequirements(visitedRequirements, visitedFunctions, function, target, requirement, result.compose(requirement));
              if (resolved != null) {
                if (allResults == null) {