code: def spell(self, word: str) -> List[str]:
          
          if not word:
              return ""
  
          candidates = (
              self.known([word])
              or self.known(_edits1(word))
              or self.known(_edits2(word))
              or [word]
          )
          candidates.sort(key=self.freq, reverse=True)
  
          return candidates
docs: Return a list of possible words, according to edit distance of 1 and 2,
          sorted by frequency of word occurrance in the spelling dictionary
  
          :param str word: A word to check its spelling