# How to hijack UnionAll type creation process?

**URL:** <https://discourse.julialang.org/t/how-to-hijack-unionall-type-creation-process/34599>\
**Category:** General Usage\
**Created:** [February 13, 2020, 7:18pm UTC](https://discourse.julialang.org/t/how-to-hijack-unionall-type-creation-process/34599 "2020-02-13T19:18:03Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Qiyamah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/qiyamah/32/2660_2.png) [@Qiyamah](https://discourse.julialang.org/u/Qiyamah)\
**Post date:** [February 13, 2020, 7:18pm UTC](https://discourse.julialang.org/t/how-to-hijack-unionall-type-creation-process/34599/1 "2020-02-13T19:18:03Z")

</div>

Hi,

is it possible to do such a thing?

```nohighlight
struct MM{T}
  x::T
end
#when I do this
MM{Int}
#I want it to return
MM{Float64}

```

I tried the following but didn’t work:

```nohighlight
function (::Base.Type{Type{MM}})(::Type{Int})
           MM{Float64}
       end

```

---

<div class="post-metadata">

**Author:** ![yuyichao](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yuyichao/32/20_2.png) [@yuyichao](https://discourse.julialang.org/u/yuyichao)\
**Post date:** [February 13, 2020, 7:24pm UTC](https://discourse.julialang.org/t/how-to-hijack-unionall-type-creation-process/34599/2 "2020-02-13T19:24:25Z")

</div>

No. Why?

---

<div class="post-metadata">

**Author:** ![pbayer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pbayer/32/11675_2.png) [@pbayer](https://discourse.julialang.org/u/pbayer)\
**Post date:** [February 13, 2020, 7:31pm UTC](https://discourse.julialang.org/t/how-to-hijack-unionall-type-creation-process/34599/3 "2020-02-13T19:31:35Z")

</div>

like that ?

```julia
struct MM{T}
  x::T
end

MM(x::Int) = MM(float(x))

julia> MM(1)
MM{Float64}(1.0)

```
