I find this issue incredibly puzzling. I don't think
https://github.com/chipsalliance/chisel3/pull/2360 is right, but I really don't understand what the issue is. It should infer the correct upcast to `IndexedSeq`...
Anyway, the usual technique of adding type parameters where they are usually inferred resolves this for me, ie.
total := array.reduce[Seq[UInt]](_ ++ _).reduce(_ + _)
I have no idea why the compiler is not figuring this out for us though.
I'm assuming your actual use case is more complex, but I will note that `.reduce(_ ++ _)` on any Seq is better as just a flatten, eg.
total := array.flatten.reduce(_ + _)