I would like to understand the difference between multiple where statements and single where statement.

Can someone point me in the right direction or give me good answer?

Here is an example:

```
julia> function foo(x::T,y::U) where {T<:Real,U<:T}
x+y
end
foo (generic function with 1 method)
function tar(x::T,y::U) where U<:T where T<:Real
x+y
end
julia> function bar(x::T,y::U) where T<:Real where U<:T
x+y
end
ERROR: UndefVarError: T not defined
```