# Printing of UnionAll types is misleading, as of Julia version 1.7

**URL:** <https://discourse.julialang.org/t/printing-of-unionall-types-is-misleading-as-of-julia-version-1-7/89418>\
**Category:** Internals & Design\
**Tags:** parametric-types\
**Created:** [October 28, 2022, 2:45am UTC](https://discourse.julialang.org/t/printing-of-unionall-types-is-misleading-as-of-julia-version-1-7/89418 "2022-10-28T02:45:33Z")\
**Posts on this page:** 1\
**Showing post:** 17

<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:** [August 10, 2023, 8:31pm UTC](https://discourse.julialang.org/t/printing-of-unionall-types-is-misleading-as-of-julia-version-1-7/89418/17 "2023-08-10T20:31:34Z")

</div>

Here’s another thread where the new printing of UnionAll types is a hindrance to understanding:

> [@Partially parametrized external constructor of a parametric type](https://discourse.julialang.org/t/partially-parametrized-external-constructor-of-a-parametric-type/102687):
>
> Define a parametric type with parameters S and T (S is intended to be an integer, and T is intended to be a floating-point number): struct FooBar{S,T} x::S y::T FooBar{S,T}(x,y) where {S,T} = new(x,y) end Define an external constructor with only the second parameter T: FooBar{T}(y) where {T} = FooBar{Int,T}(0,y) The external constructor works: julia\> FooBar{Float64}(1.0) FooBar{Int64, Float64}(0, 1.0) Now, define the same parametric type and external constructor, except that S …

It’s a little disappointing that I had to go back to an old version of Julia in order to explain a concept.

---

_[View the full topic](https://discourse.julialang.org/t/printing-of-unionall-types-is-misleading-as-of-julia-version-1-7/89418)._
