function flow() {
    if (arguments.length === 0) {
        return
    }

    const head = arguments[0]
    const rest = [].slice.call(arguments, 1)

    head()
    setTimeout(() => {
        flow.apply(null, rest)
    }, 33)
}
Executes functions sequentially.

@param {function[]} arguments - Functions to execute.
@returns {void}