code: func cloneNodeBase(astPtr Node) {
  	if astPtr.Context() != nil {
  		newContext := new(string)
  		*newContext = *astPtr.Context()
  		astPtr.SetContext(newContext)
  	}
  	astPtr.SetFreeVariables(append(make(Identifiers, 0), astPtr.FreeVariables()...))
  }
docs: // Updates the NodeBase fields of astPtr to point to deep clones.