As some of you may have seen, a week or two ago I published an experimental collections library, farray — an immutable, Array-backed sequence with O(1) structural ops (via lazy nodes over flat leaves), no boxing of primitives, name-based ::/+: extractors, and a fusion macro. I chose its main characteristics specifically because I was convinced they'd be an ideal fit for the Scala 3 compiler: covariance (FArray[+A], like List), dedicated special-casing for length 0 and 1 (a shared empty singleton and a one-field leaf), unboxed flat storage, and O(1) ++/+:/take/drop. Given everything I thought I knew about JVM performance, I was fully convinced that replacing List with FArray throughout the compiler would be a large, obvious win.
It wasn't.
I started from Li Haoyi's "Vector as default Seq" branch and mechanically replaced essentially all internal collection use in the compiler with FArray — compiler/src in full, plus r