Nesting subtype in parameter of a subtype

I’m struggling to create the following structure. Say I have…

abstract type AbstractType{A,B,C} end


abstract type AbstractSubType{A,B,C} <: AbstractType{A,B,C} end

I’d like to make…

struct ConcreteType{D, E<:AbstractSubType{A,B,C}} <: AbstractType{A,B,C}

Doing so produces A undefined. I can’t seem to figure out how to specify where {A,B,C} to produce the desired behavior (or if this is illegal somehow). Has anyone ran into this?

It may be related to this, maybe? It seems like the struct definition does not have a good mechanism to indicate which nested Types should be Type parameters and which nested Types are just types that exist and should be used as they are.