code: def documentation(self, level='first'):
          
          docs = (t.docstring for t in list(self.conjunction.terms) + [self]
                  if t.docstring is not None)
          if level.lower() == 'first':
              doc = next(docs, None)
          elif level.lower() == 'top':
              doc = list(docs)
          return doc
docs: Return the documentation of the type.
  
          By default, this is the first docstring on a top-level term.
          By setting *level* to `"top"`, the list of all docstrings on
          top-level terms is returned, including the type's `docstring`
          value, if not `None`, as the last item. The docstring for the
          type itself is available via :attr:`TypeDefinition.docstring`.
  
          Args:
              level (str): `"first"` or `"top"`
          Returns:
              a single docstring or a list of docstrings