code: def imm_dict(imm):
      '''
      imm_dict(imm) yields a persistent dictionary of the params and values of the immutable
      object im. Note that this forces all of the values to be reified, so only use it if you want to
      force execution of all lazy values.
      '''
      immd = dict(**imm_params(imm))
      for (k,v) in six.iteritems(imm_values(imm)):
          immd[k] = v
      return immf imm_dict(imm):
      '''
      imm_dict(imm) yields a persistent dictionary of the params and values of the immutable
      object im. Note that this forces all of the values to be reified, so only use it if you want to
      force execution of all lazy values.
      '''
      immd = dict(**imm_params(imm))
      for (k,v) in six.iteritems(imm_values(imm)):
          immd[k] = v
      return immd
docs: imm_dict(imm) yields a persistent dictionary of the params and values of the immutable
      object im. Note that this forces all of the values to be reified, so only use it if you want to
      force execution of all lazy values.