docs: def child(self, child):
          """
          Equivalent to Child(self, next) but with some canonicalization
          """
          if isinstance(self, This) or isinstance(self, Root):
              return child
          elif isinstance(child, This):
              return self
          elif isinstance(child, Root):
              return child
          else:
              return Child(self, child)