It was suggested that I try changing :: Matrix :== !{!Vector} // Version A. to :: Matrix :== !{#Vector} // Version B. Well, I tried it. Here are the times I got just now. Version A: 453 sec (user) + 13 sec (GC) = 466 sec (total). Version B: 507 sec (user) + 14 sec (GC) = 521 sec (total) Interesting, no?