# How to construct a type using Meta programming?

**URL:** <https://discourse.julialang.org/t/how-to-construct-a-type-using-meta-programming/136644>\
**Category:** General Usage\
**Created:** [April 9, 2026, 2:05pm UTC](https://discourse.julialang.org/t/how-to-construct-a-type-using-meta-programming/136644 "2026-04-09T14:05:43Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [April 9, 2026, 2:15pm UTC](https://discourse.julialang.org/t/how-to-construct-a-type-using-meta-programming/136644/2 "2026-04-09T14:15:43Z")

</div>

> [@Thomas008](#):
>
> However, using the symbol curly, using
> 
> ```julia-auto
> ex = Expr(:curly)
> 
> ```
> 
> did not work to get a well-formed expression so far.  
> I would be very happy if you had a suggesion.

`Expr(:curly, :Tuple, :Int, :Char)` works just fine to construct `:(Tuple{Int, Char})`, for example.

PS. Obligatory warning that [metaprogramming is the wrong tool 99% of the time](https://discourse.julialang.org/t/how-to-warn-new-users-away-from-metaprogramming/35022) … but is very useful in remaining 1%.

---

_[View the full topic](https://discourse.julialang.org/t/how-to-construct-a-type-using-meta-programming/136644)._
