consider the following code:
abstract type MyDimension end
abstract type My2D <: MyDimension end
abstract type My3D <: MyDimension end
mutable struct Shape{T<:MyDimension}
end
Currently you can declare variables of type Shape{My2D}, Shape{My3D} and Shape{MyDimension}.
Is there any way that allows the first two but not Shape{MyDimension}?