# Clarify parametric new

**URL:** https://discourse.julialang.org/t/clarify-parametric-new/11608
**Category:** Internals & Design
**Tags:** question
**Created:** [June 12, 2018, 1:49pm UTC](https://discourse.julialang.org/t/clarify-parametric-new/11608 "2018-06-12T13:49:04Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [June 12, 2018, 1:49pm UTC](https://discourse.julialang.org/t/clarify-parametric-new/11608/1 "2018-06-12T13:49:04Z")

</div>

Documentation on the parametric form of `new{}` is pretty scarce. [This section](https://docs.julialang.org/en/latest/manual/constructors/#Outer-only-constructors-1) says

> `new{T,S}` can be used in any constructor definition, but for convenience the parameters to `new{}` are automatically derived from the type being constructed when possible.

but I wonder

1. how exactly that works,
2. if, in parametric methods, `new(...)` is just always silently replaced by an automatic `new{...}(...)`, or the two forms are actually different.

_(asking here before opening an issue)_

---

<div class="post-metadata">

### Author: ![jeff.bezanson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeff.bezanson/32/48_2.png) [@jeff.bezanson](https://discourse.julialang.org/u/jeff.bezanson)
#### Post date: [June 12, 2018, 4:56pm UTC](https://discourse.julialang.org/t/clarify-parametric-new/11608/2 "2018-06-12T16:56:17Z")

</div>

Question 1: If the name of the type is `X`, and the constructor has the form `function X{...}(...)` then the contents of the curly braces right after the `X` are passed to `new`.

Question 2: To make an instance, type parameters must have definite values, so `new(...)` is always equivalent to some `new{...}(...)`. They will lower to the exact same thing.
