# Using parametric type inside outer parametric constructor

**URL:** <https://discourse.julialang.org/t/using-parametric-type-inside-outer-parametric-constructor/53388>\
**Category:** General Usage\
**Tags:** linearalgebra, parametric-types, potential-bug\
**Created:** [January 15, 2021, 3:37pm UTC](https://discourse.julialang.org/t/using-parametric-type-inside-outer-parametric-constructor/53388 "2021-01-15T15:37:33Z")\
**Posts on this page:** 1\
**Showing post:** 10

<div class="post-metadata">

**Author:** ![CameronBieganek](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cameronbieganek/32/6915_2.png) [@CameronBieganek](https://discourse.julialang.org/u/CameronBieganek)\
**Post date:** [January 15, 2021, 5:42pm UTC](https://discourse.julialang.org/t/using-parametric-type-inside-outer-parametric-constructor/53388/10 "2021-01-15T17:42:11Z")

</div>

I’m still a bit confused. The suggestion from @lmiq made me wonder about a related question that seems odd to me. I’ve opened a separate thread for that specific question:

> [@If parametric types are invariant, why is Vector{Int} a subtype of AbstractVector{Int}?](https://discourse.julialang.org/t/if-parametric-types-are-invariant-why-is-vector-int-a-subtype-of-abstractvector-int/53394):
>
> If parametric types are invariant, why is Vector{Int} a subtype of AbstractVector{Int}? julia\> Vector{Int} \<: AbstractVector{Int} true A somewhat more complete and self-contained example: julia\> abstract type Animal{T} end julia\> struct Cat{T} \<: Animal{T} end julia\> Int \<: Real true julia\> Cat{Int} \<: Animal{Real} false julia\> Int \<: Int true julia\> Cat{Int} \<: Animal{Int} true Since parametric types are supposed to be invariant, it seems like there should be no subtype relationship be…

---

_[View the full topic](https://discourse.julialang.org/t/using-parametric-type-inside-outer-parametric-constructor/53388)._
