code: def child(self, child):
          
          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)
docs: Equivalent to Child(self, next) but with some canonicalization