docs: def strategy(self):
          'Returns resulting strategy that generates configured char set'
          max_codepoint = None if self._unicode else 127
  
          strategies = []
          if self._negate:
              if self._categories or self._whitelist_chars:
                  strategies.append(
                      hs.characters(
                          blacklist_categories=self._categories | set(['Cc', 'Cs']),
                          blacklist_characters=self._whitelist_chars,
                          max_codepoint=max_codepoint,
                      )
                  )
              if self._blacklist_chars:
                  strategies.append(
                      hs.sampled_from(
                          list(self._blacklist_chars - self._whitelist_chars)
                      )
                  )
          else:
              if self._categories or self._blacklist_chars:
                  strategies.append(
                      hs.characters(
                          whitelist_categories=self._categories,
                          blacklist_characters=self._blacklist_chars,
                          max_codepoint=max_codepoint,
                      )
                  )
              if self._whitelist_chars:
                  strategies.append(
                      hs.sampled_from(
                          list(self._whitelist_chars - self._blacklist_chars)
                      )
                  )
  
          return hs.one_of(*strategies) if strategies else hs.just(u'')