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

I’m not sure what you mean by “value vy of y” in your definition. If it’s saying that y is an abstract type that implements vy in the way that Int64 is a concrete type that implements 1, then that’s impossible because by definition, only concrete types implement. It looks fine if that detail is omitted: in more familiar terms, x isa y if and only if typeof(x) <: y.

Couple things:

  • isconcretetype(aType) can be used to distinguish a concrete type and an abstract type. Ptr is definitely abstract.
  • Ptr{Float64} is a subtype, not an instance, of Ptr.
1 Like