     // According to Ali Ozer, there may be some real advantage to
     // dispatching to the minimal selector for the supplied options.
     // So let's do that; the switch should compile away anyhow.
-    return locale ? _ns.compare(
+    return locale != nil ? _ns.compare(
       aString, options: mask,
-      range: _toNSRange(range ? range! : indices(self)), locale: locale)
+      range: _toNSRange(range != nil ? range! : indices(self)), locale: locale)
     
-    : range ? _ns.compare(
-      aString, options: mask, range: _toNSRange(range ? range! : indices(self)))
+    : range != nil ? _ns.compare(
+      aString, options: mask, range: _toNSRange(range != nil ? range! : indices(self)))
       
     : mask ? _ns.compare(aString, options: mask)
       

    return _optionalRange(
      _ns.rangeOfCharacterFromSet(
        aSet, options: mask,
        range: _toNSRange(aRange ? aRange! : indices(self))))
  }

  // - (NSRange)rangeOfComposedCharacterSequenceAtIndex:(NSUInteger)anIndex

      _toNSRange(range),
      scheme: tagScheme,
      options: opts,
      orthography: orthography != nil ? orthography! : nil
    ) {
      var stop_ = false
      body($0, self._range($1), self._range($2), &stop_)
