No, it is not the same as in Higher Ranked Types.
What I want here is to support Higher kinded types (Nested generics).
We can as Jeff said construct types already by
compose(a::Type,b::Type,c::Type)=a{b{c}}
but how do we type check such a nested type in a function?
This here do not work:
f(thing::Type{Type{Type}})=...
With the NestedType, which is probably not a Meta Type as I see yet
you could say equivalently:
f(thing::S{T{R}}) where {S,T,R}=...
which rewrites to:
f(thing::V) where {V isa NestedType{2,N} where N}=...