I encountored syntax like `funcion (::Type{T})(...)...`

and it seems that `(::Type{T})`

is a function name. Is it correct? Also, if so, could you explain how it works or tell me the corresponding documentation?

I encountored this syntax here. For example, the code below can be found at the lines 82-87.

function (::Type{M})(

vertices::AbstractVector{Point{3, VT}}, faces::AbstractVector{FT}

) where {M <: HMesh, VT, FT <: Face}

msh = PlainMesh{VT, FT}(vertices = vertices, faces = faces)

convert(M, msh)

end