Rust a Haskell mají hlavně úplně jiná zaměření.
Haskell je vlastně extrémně vysokoúrovňový jazyk. Přijde mi, že cílem je, aby programátor řekl, co potřebuje spočítat, a kompilátor nějak vymyslel, jak to udělat. Což mimo jiné znamená, že má líné vyhodnocování. V Haskellu pak ani není rozdíl +syntaktický ani sémantický) mezi přiřazením do proměnné a definicí funkce bez parametrů. Prostě se to vyhodnotí, až bude potřeba. Dokonce je možné udělat nekonečný seznam všech přirozených čísel, zavolat na něm map (\x -> 500 / (x-20)). Nevadí, že je to nekonečné (dokud to nebudu chtít přečíst celé; třeba při reverse by se to projevilo, až bych chtěl tu hodnotu použít) a že na dvacátém prvků dělím nulou (dokud ho nepotřebuju). Nedovedu si s tím moc představit paralelní výpočty (nad rámec toho, co by mohl být schopen vymyslet sám kompilátor) – pokud chci něco spočítat paralelně, asi nepotřebuju dostat hromadu líných hodnot, které se někdy časem možná vyhodnotí. Už jsem se (v jiném jazyce) na tom napálil, protože u líné datové struktury došlo k vyhodnocení až při vypisování, a paralelnost byla fuč.
Rust spíš vznikl s cílem udělat Cčko komfortní. Primárně nízkoúrovňový jazyk, který spíše shodou okolností lze někdy použít místo vyšších jazyků V podstatě si můžete představit Rust jako C + lepší preprocesor pro makra + statický analyzátor hlídající paměťovou bezpečnost.
Filozoficky jsou oba jazyky úplně jinde. Proto bude problém srovnávat jejich výkon. Oba jazyky asi budou ve své třídě rychlé, vzájemné srovnání bude komplikované. Rust bude mít predikovatelnější rychlost, u Haskellu to bude víc „magie“, která jej v některých případech (kryptografie, různé realtime úlohy, …) diskvalifikuje, i kdyby tam vycházel rychlejší.