Любые функции в хаскеле, не содержащие unsafe — чистые и детерминированные. Даже функции, работающие в монаде IO.
Это, по сути, набор инструкций рантайму, что делать. И функция возвращает всегда один и тот же набор инструкций. А интерпретировать его рантайм может единожды, или многократно. Если он это сделает многократно, может получить разные ответы. Но эта штука находится уже под капотом хаскелевского рантайма.