code: def unwrap(klass, value):
          
          assert isinstance(value, Value), value
          V = value.value
          try:
              T = klass.typeMap[type(V)]
          except KeyError:
              raise ValueError("Can't unwrap value of type %s" % type(V))
          try:
              return T(value.value)._store(value)
          except Exception as e:
              raise ValueError("Can't construct %s around %s (%s): %s" % (T, value, type(value), e))
docs: Unpack a Value into an augmented python type (selected from the 'value' field)