# How to print name of parametric type without, uhm, parameters?

**URL:** <https://discourse.julialang.org/t/how-to-print-name-of-parametric-type-without-uhm-parameters/53248>\
**Category:** General Usage\
**Created:** [January 12, 2021, 7:28pm UTC](https://discourse.julialang.org/t/how-to-print-name-of-parametric-type-without-uhm-parameters/53248 "2021-01-12T19:28:53Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![DrChainsaw](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/drchainsaw/32/8497_2.png) [@DrChainsaw](https://discourse.julialang.org/u/DrChainsaw)\
**Post date:** [January 12, 2021, 7:28pm UTC](https://discourse.julialang.org/t/how-to-print-name-of-parametric-type-without-uhm-parameters/53248/1 "2021-01-12T19:28:53Z")

</div>

For example:

```julia
julia> struct A{T}
       a::T
       end

julia> simpletypename1(x::F) where F = string(F);

julia> @assert simpletypename1(A(3)) === "A" # Fails, as type is A{Int64} 

julia> simpletypename2(x::F) where F = string(F.name); # Yeah I know, not a good idea...

julia> @assert simpletypename2(A(3)) === "A" # Works in 1.5 but fails in 1.6; prints "typename(A)"

julia> simpletypename3(x::F) where F = string(F.name.name); # Ugh...

julia> @assert simpletypename3(A(3)) === "A" # Phyrric victory...

```

Regex/split is ofc an option but I’m thinking there is a better way.

---

<div class="post-metadata">

**Author:** ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)\
**Post date:** [January 12, 2021, 7:33pm UTC](https://discourse.julialang.org/t/how-to-print-name-of-parametric-type-without-uhm-parameters/53248/2 "2021-01-12T19:33:21Z")

</div>

That?

```julia
julia> struct A{T}
         x::T
       end

julia> a = A(1)
A{Int64}(1)

julia> typeof(a).name
A

```

---

<div class="post-metadata">

**Author:** ![DrChainsaw](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/drchainsaw/32/8497_2.png) [@DrChainsaw](https://discourse.julialang.org/u/DrChainsaw)\
**Post date:** [January 12, 2021, 7:34pm UTC](https://discourse.julialang.org/t/how-to-print-name-of-parametric-type-without-uhm-parameters/53248/3 "2021-01-12T19:34:42Z")

</div>

Prints “typename(A)” in 1.6 ☹

---

<div class="post-metadata">

**Author:** ![tomerarnon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tomerarnon/32/3170_2.png) [@tomerarnon](https://discourse.julialang.org/u/tomerarnon)\
**Post date:** [January 12, 2021, 8:00pm UTC](https://discourse.julialang.org/t/how-to-print-name-of-parametric-type-without-uhm-parameters/53248/4 "2021-01-12T20:00:54Z")

</div>

All three of these work in both 1.5 and 1.6

```julia
julia> Vector{Set{Int}}.name.name
:Array

julia> Base.typename(Vector{Set{Int}}).name
:Array

julia> nameof(Vector{Set{Int}})
:Array

```

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [January 12, 2021, 10:14pm UTC](https://discourse.julialang.org/t/how-to-print-name-of-parametric-type-without-uhm-parameters/53248/5 "2021-01-12T22:14:31Z")

</div>

Julia version 1.6:

```julia
julia> struct A{T}
                     a::T
                     end

julia> nameof( typeof( A(3) ) )
:A

julia> string( nameof( typeof( A(3) ) ) )
"A"

julia> simpletypename4(x) = string( nameof( typeof( x ) ) )
simpletypename4 (generic function with 1 method)

julia> simpletypename4( A(3) )
"A"

julia> versioninfo()
Julia Version 1.6.0-beta1.0
Commit b84990e1ac (2021-01-08 12:42 UTC)
...

```

Julia version 1.5:

```julia
julia> struct A{T}
              a::T
              end

julia> nameof( typeof( A(3) ) )
:A

julia> string( nameof( typeof( A(3) ) ) )
"A"

julia> simpletypename4(x) = string( nameof( typeof( x ) ) )
simpletypename4 (generic function with 1 method)

julia> simpletypename4( A(3) )
"A"

julia> versioninfo()
Julia Version 1.5.0
Commit 96786e22cc (2020-08-01 23:44 UTC)

```

---

<div class="post-metadata">

**Author:** ![DrChainsaw](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/drchainsaw/32/8497_2.png) [@DrChainsaw](https://discourse.julialang.org/u/DrChainsaw)\
**Post date:** [January 12, 2021, 10:41pm UTC](https://discourse.julialang.org/t/how-to-print-name-of-parametric-type-without-uhm-parameters/53248/6 "2021-01-12T22:41:02Z")

</div>

Awesome thanks alot. Can only select one solution so I picked the first.
