code: def _d(h, cls, state):
      
      op, args, length, variables, symbolic, annotations = state
      return cls.__new__(cls, op, args, length=length, variables=variables, symbolic=symbolic, annotations=annotations, hash=h)
docs: This function is the deserializer for ASTs.
      It exists to work around the fact that pickle will (normally) call __new__() with no arguments during deserialization.
      For ASTs, this does not work.