A precise definition of what it means to be an instance of an abstract type

Well, if you are right, then the manual is wrong as it explicitly says that Ptr{Float64} is an instance of Ptr. But, personally, I agree with you on this point.

But regarding

consider

julia> supertypes(Ptr{Float64})
(Ptr{Float64}, Ref{Float64}, Any)

julia> subtypes(Ptr)
Type[]

As you can see, Ptr is not in there. Yes, I know it is according to <:, but as I point out in another discourse, it is not at all clear that <: means “is a subtype” in the case of Ptr.