This is not a bug, but a historical hole in the language, that we 'potentially can fix'.
This works because Element
is an associated type from a protocol that Array
conforms to which exposes the type.
That does not work because Swift currently does not allow 'qualified lookup' in this context.
let x: Optional<Int>.Wrapped = ... // will error out
Please check this discussion: Allow Member Lookup to Find Generic Parameters