Following this thread:

We have this example:

```
julia> struct A{T}
i
end
julia> A(1) # does not work
ERROR: MethodError: no method matching A(::Int64)
Stacktrace:
[1] top-level scope at REPL[2]:1
julia> A{Int64}(1) # explicitly defining the type parameter
A{Int64}(1)
julia> A(i::T) where T = A{T}(i) # deduces type from argument
A
julia> A(1) # now it works
A{Int64}(1)
julia>
```

The question is if the error message could be more clear, mentioning the need of the type parameter in the constructor.

The second question is what does the type parameter mean, and what are its implications, when the type is not used for the type of the variables?

```
julia> struct A{T}
i
end
julia> a = A{Float64}(1)
A{Float64}(1)
julia> typeof(a.i)
Int64
```

(I was not expecting that `a.i`

was anything but an integer, I am only trying to explain the question). In that case, what the `Float64`

implies, if anything, for the behavior of that `struct`

?