Indeed, `&` returns `[]` if the operand is `[]`:

    [1] pry(main)> [:a,:b] & [] & []
    => []