code: def _keep_alive(x, memo):
      
      try:
          memo[id(memo)].append(x)
      except KeyError:
          # aha, this is the first one :-)
          memo[id(memo)]=[x]
docs: Keeps a reference to the object x in the memo.
  
      Because we remember objects by their id, we have
      to assure that possibly temporary objects are kept
      alive by referencing them.
      We store a reference at the id of the memo, which should
      normally not be used unless someone tries to deepcopy
      the memo itself...