protected static function swapCallable(&$optional, &$callable, $default = null, $callable_required = true)
    {
        $is_swapped = false;
        if (is_callable($optional)) {
            $callable = $optional;
            $optional = $default;
            $is_swapped  = true;
        }
        if ($callable_required && !$callable) {
            throw new Exceptions\InvalidArgumentException(
                "A callable object is required."
            );
        }
        
        return $is_swapped;
    }