@function __xor($arguments...) {
    $index: 1;
    $length: length($arguments);
    $result: ();

    @each $list in $arguments {
        @if __is-list-like($list) {
            $result: if($result,
                join(
                    __base-difference($result, $list),
                    __base-difference($list, $result)),
                $list);
        }
    }

    @return if(__is-truthy($result), __base-uniq($result), ());
}


/// Creates a list that is the symmetric difference of the provided lists.
/// See [Wikipedia](https://en.wikipedia.org/wiki/Symmetric_difference) for
/// more details.
///
///
/// @access public
/// @group List
/// @param {List...} $lists The lists to inspect.
/// @returns {List} Returns the new list of values.
/// @example scss
/// $foo: _xor((1, 2), (4, 2));
/// // => (1, 4)

@function _xor($args...) {
    @return call(get-function('__xor'), $args...);
}
