Found a minor bug in type inference:
struct Bar {
let val: Double
}
struct Foo {
let bar: [Bar]
}
let p1 = Foo(bar: [.init(val: 0*0)]) // Cannot convert value of type 'Int' to expected argument type 'Double'
let p2 = Foo(bar: [Bar(val: 0*0)]) // OK