docs: def tokenize(s, locale, update=None):
      """
      Tokenize `s` according to corresponding locale dictionary.
      Don't use this for serious text processing.
      """
      zhdict = getdict(locale)
      pfset = pfsdict[locale]
      if update:
          zhdict = zhdict.copy()
          zhdict.update(update)
          newset = set()
          for word in update:
              for ch in range(len(word)):
                  newset.add(word[:ch+1])
          pfset = pfset | newset
      ch = []
      N = len(s)
      pos = 0
      while pos < N:
          i = pos
          frag = s[pos]
          maxword = None
          maxpos = 0
          while i < N and frag in pfset:
              if frag in zhdict:
                  maxword = frag
                  maxpos = i
              i += 1
              frag = s[pos:i+1]
          if maxword is None:
              maxword = s[pos]
              pos += 1
          else:
              pos = maxpos + 1
          ch.append(maxword)
      return ch