code: def __descendants(self):
          
          return itertools.chain(self.contents,
                                 *[c.descendants for c in self.children])
docs: Implementation for descendants, hacky workaround for __getattr__
          issues.