Check if a type is a "concretization" of some UnionAll

Having a UnionAll and another type I would like to check if the other was constructed by filling the parameters of the UnionAll:

struct A{T} end
const C1 = A{Int}

using Test
@test concretizationof(C1, A) == true
@test concretizationof(C1, Number) == false
@test concretizationof(A, A) == false

A rudimentary implementation:

concretizationof(c, a) = isconcretetype(c) && typeof(a) == UnionAll && c.name == a.body.name

Is there a better alternative? Better means e.g. without using implementation details, and not throwing for (Vector{Int}, Array) .

How about this

concretizationof(c, a) = isconcretetype(c) && typeof(a) == UnionAll && c <: a


julia> concretizationof(C1, Number)
false

julia> concretizationof(C1, A)
true

julia> concretizationof(A, A)
false

julia> concretizationof(Vector{Int}, Array)
true

Thanks, it seems that it was a silly question. Knowing that A{Int} <: A{Number} is false helped me to avoid the trivial solution. Sorry for the noise!