from Как работает бесуровневый язык?
Haskell (as commonly implemented) does not have a call stack;
evaluation is based on graph reduction.
Действительно? Это интересно, потому что, хотя я никогда не испытывал этого сам, я читал, что если вы не используете строгие версии функций fold, а затем заставляете оценивать бесконечную складку, вы получаете переполнение стека. Несомненно, это указывает на наличие стека. Может ли кто-нибудь уточнить?