docs: def sid(self):
          """Semantic id."""
          pnames = list(self.terms)+list(self.dterms)
          pnames.sort()
          return (self.__class__, tuple([(k, id(self.__dict__[k])) for k in pnames if k in self.__dict__]))