To be fair, the first sentence on the Rust implementation's GitHub repo is
> A straightforward Rust implementation
(emphasis mine) and the implementation in the article is heavily optimized.
> A straightforward Rust implementation
(emphasis mine) and the implementation in the article is heavily optimized.
I would say that if an experienced Haskell programmer set out to write this program with the intent of making it fast, they'd never use lists in the first place, and not consider their absence an optimisation. Haskell lists are designed for lazily-generated arbitrary-length sequences, and are a bad fit for representing small finite-length sequences, such as vectors.