It seems that replacing Unsafe.Real64Array with Real64Array was a late change; the Real64Array structure doesn't have a create function, so I was getting compilation errors. The fix is to rewrite mkRealArray: val mkRawArray = fn n => A.array(n, 0.0) Also, the benchmark program didn't make any indication of compilation failure in the log.