# What happened to \`T?\`

**URL:** <https://discourse.julialang.org/t/what-happened-to-t/25480>\
**Category:** Internals & Design\
**Tags:** question\
**Created:** [June 20, 2019, 11:28am UTC](https://discourse.julialang.org/t/what-happened-to-t/25480 "2019-06-20T11:28:59Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![mcabbott](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mcabbott/32/6603_2.png) [@mcabbott](https://discourse.julialang.org/u/mcabbott)\
**Post date:** [June 20, 2019, 11:54am UTC](https://discourse.julialang.org/t/what-happened-to-t/25480/2 "2019-06-20T11:54:11Z")

</div>

You can write `f(x::@?(Int), y::Int) = x+y` with tkf’s clever macro, from this earlier discussion:

> [@Aliases for Union{T, Nothing} and Union{T, Missing}?](https://discourse.julialang.org/t/aliases-for-union-t-nothing-and-union-t-missing/15402/41):
>
> How about @?Int? ex = frowning macro \_(ex) if $(rand() \> 0.5) :(Union{$ex, Nothing}) else :(Union{$ex, Missing}) end end ) ex.args[1].args[1] = :? eval(ex) @?Int

---

_[View the full topic](https://discourse.julialang.org/t/what-happened-to-t/25480)._
