Remember that you can always ask the REPL for any symbols or operators that you come across, even <:
help?> <:
search: <:
<:(T1, T2)
Subtype operator, equivalent to issubtype(T1, T2).
julia> Float64 <: AbstractFloat
true
julia> Vector{Int} <: AbstractArray
true
julia> Matrix{Float64} <: Matrix{AbstractFloat}
false
help?> >>>
search: >>> >> .>>
>>>(x, n)
Unsigned right bit shift operator, x >>> n. For n >= 0, the result is x shifted right by n
bits, where n >= 0, filling with 0s. For n < 0, this is equivalent to x << -n.
For Unsigned integer types, this is equivalent to >>. For Signed integer types, this is
equivalent to signed(unsigned(x) >> n).
julia> Int8(-14) >>> 2
60
julia> bits(Int8(-14))
"11110010"
julia> bits(Int8(60))
"00111100"
BigInts are treated as if having infinite size, so no filling is required and this is
equivalent to >>.
See also >>, <<.
>>>(B::BitVector, n) -> BitVector
Unsigned right bitshift operator, B >>> n. Equivalent to B >> n. See >> for details and
examples.
In this sense, <: is a built-in function that is aliased to issubtype.