docs: def is_entailed_by(self, other):
          """
          Means merging other with self does not produce any new information.
          """
          if not set(self.include.keys()).issubset(set(other.include.keys())):
              return False
          if not self.exclude.isuperset(other.exclude):
              return False
          if not self.prototype.is_entailed_by(other.prototype):
              return False
          return True