docs: def defract(self):
          """
          Returns the underlying (unrefracted) value of element
  
          >>> Element(content='Hello').defract
          'Hello'
  
          >>> Element(content=Element(content='Hello')).defract
          'Hello'
  
          >>> Element(content=[Element(content='Hello')]).defract
          ['Hello']
          """
  
          from refract.elements.object import Object
  
          def get_value(item):
              if isinstance(item, KeyValuePair):
                  return (get_value(item.key), get_value(item.value))
              elif isinstance(item, list):
                  return [get_value(element) for element in item]
              elif isinstance(item, Element):
                  if isinstance(item, Object) or item.element == 'object':
                      return dict(get_value(item.content))
                  return get_value(item.content)
  
              return item
  
          return get_value(self)