Julia is a very different and interesting language

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.

3 Likes