In Julia 0.5, I was able to declare the return type with a type parameter as follows:

```
julia> test{T<:Number}(x::T)::float(T) = x
test (generic function with 1 method)
julia> test(1)
1.0
```

However, in Julia 0.6 with the `where {T}`

syntax, the following similar definition doesn’t work:

```
julia> test(x::T)::float(T) where {T} = x
ERROR: UndefVarError: T not defined
```

What is the proper way to do this in 0.6? I’ve found that the following works:

```
julia> (test(x::T)::float(T)) where {T<:Number} = x
test (generic function with 1 method)
julia> test(1)
1.0
```

but is this a standard way of doing this? Enclosing the method signature with a pair of parentheses looks a bit ugly…

As a side note, I’m aware that the long-form definition works fine:

```
julia> function test(x::T)::float(T) where {T<:Number}
x
end
test (generic function with 1 method)
julia> test(1)
1.0
```