docs: def check_fast(self, r, k=None):
          '''Fast check if there's any error in a message+ecc. Can be used before decoding, in addition to hashes to detect if the message was tampered, or after decoding to check that the message was fully recovered.
          returns True/False
          '''
          n = self.n
          if not k: k = self.k
          #h = self.h[k]
          g = self.g[k]
  
          # If we were given a string, convert to a list (important to support fields above 2^8)
          if isinstance(r, _str):
              r = [ord(x) for x in r]
  
          # Turn r into a polynomial
          r = Polynomial([GF2int(x) for x in r])
  
          # Compute the syndromes:
          sz = self._syndromes(r, k=k)
  
          # Checking that the syndrome is all 0 is sufficient to check if there are no more any errors in the decoded message
          #return all(int(x) == 0 for x in sz)
          return sz.coefficients.count(GF2int(0)) == len(sz)