docs: def merge_properties(item_properties, prop_name, merge_value):
      """
      Tries to figure out which type of property value that should be merged and
      invoke the right function.
      Returns new properties if the merge was successful otherwise False.
      """
      existing_value = item_properties.get(prop_name, None)
      if not existing_value:  # A node without existing values for the property
          item_properties[prop_name] = merge_value
      else:
          if type(merge_value) is int or type(merge_value) is str:
              item_properties[prop_name] = existing_value + merge_value
          elif type(merge_value) is list:
              item_properties[prop_name] = merge_list(existing_value, merge_value)
          else:
              return False
      return item_properties