docs: def _afterpass(self):
          """Assign a function-local index to each child object and register
              write operations to variables.
  
              This should only be called after the object is fully built.
          """
          if hasattr(self, '_fi'):
              return
          fi = 0
          for codeobj in self.walk_preorder():
              codeobj._fi = fi
              fi += 1
              if isinstance(codeobj, CodeOperator) and codeobj.is_assignment:
                  if codeobj.arguments and isinstance(codeobj.arguments[0],
                                                      CodeReference):
                      var = codeobj.arguments[0].reference
                      if isinstance(var, CodeVariable):
                          var.writes.append(codeobj)