docs: def make_mergable_if_possible(cls, data, context):
          """
          Makes an object mergable if possible. Returns the virgin object if
          cannot convert it to a mergable instance.
  
          :returns: :class:`.Mergable` or type(data)
  
          """
          if isinstance(data, dict):
              return MergableDict(data=data, context=context)
          elif isiterable(data):
              return MergableList(
                  data=[cls.make_mergable_if_possible(i, context) for i in data],
                  context=context
              )
          else:
              return data