When trying to intersect two ranges I stumbled upon the following behavior:

```
julia> intersect(2:8, 4:10)
4:8
julia> intersect(2:7, 5:10)
5:7
julia> intersect(2:6, 6:10)
6:6
julia> intersect(2:5, 7:10)
7:6
julia> intersect(2:4, 8:10)
8:7
julia> intersect(2:3, 9:10)
9:8
```

Is this expected? It works fine for arrays:

```
julia> intersect(collect(2:8), collect(4:10))
5-element Array{Int64,1}:
4
5
6
7
8
julia> intersect(collect(2:7), collect(5:10))
3-element Array{Int64,1}:
5
6
7
julia> intersect(collect(2:6), collect(6:10))
1-element Array{Int64,1}:
6
julia> intersect(collect(2:5), collect(7:10))
0-element Array{Int64,1}
julia> intersect(collect(2:4), collect(8:10))
0-element Array{Int64,1}
julia> intersect(collect(2:3), collect(9:10))
0-element Array{Int64,1}
```