```d unittest{ int[][] foo=[[1,2,3],[4,5,6],[7,8,9]]; foo.transposed.writeln; foo.writeln; //prints [] } ``` By trying to avoid one allocation, transposed picks up unnecessary constraints and violates "view of data". Instead it should just eagerly call the `.array` on the range of ranges for me as thats usually more correct and the only way it compiles anyway.