anchor.diff:    List<OptionGroup<T>> _optionGroups;
   
     /// A function that converts a single option to a filterable string.
  -  ItemRenderer<T> _toFilterableString;
  +  final ItemRenderer<T> _toFilterableString;
   
     /// Function for filtering a single suggestion/option, defaults to
     /// [filterOption] method.
     StringSuggestionFilter<T> _suggestionFilter;
   
     /// The [ItemRenderer] that sanitizes options and queries before filtering.
  -  ItemRenderer _sanitizeString;
  +  final ItemRenderer<String> _sanitizeString;
   
  -  bool _shouldSort = false;
  +  final bool _shouldSort;
   
     /// The list of options and optionally a function to convert the option into a
     /// string that can be used for filtering the list.
  
positive.code: import 'package:angular_components/utils/async/async.dart';
  
  /// Formats [value] as a lowercase string without spaces.
  String _stringFormatSuggestion<T>(T value) =>
      '$value'.replaceAll(' ', '').toLowerCase();
  
  typedef bool StringSuggestionFilter<T>(T suggestion, String filterQuery);
  
  
negative.code:   StringSelectionOptions.withOptionGroups(List<OptionGroup<T>> optionGroups,
        {ItemRenderer<T> toFilterableString,
        StringSuggestionFilter<T> suggestionFilter,
        ItemRenderer<String> sanitizeString: _stringFormatSuggestion,
        bool shouldSort: false})
        : _toFilterableString =
              toFilterableString ?? _defaultRenderer(sanitizeString),
          _shouldSort = shouldSort,
          _sanitizeString = sanitizeString,
          super(optionGroups) {
      _suggestionFilter =
          suggestionFilter != null ? suggestionFilter : filterOption;
    }
  
    /// Accepts a string query and limit and applies the filter to the options.
  