Как выглядят трюки для следующего значения/выражения/функции в куче Haskell?
val = 5 -- is `val` a pointer to a box containing 5?
add x y = x + y
result = add 2 val
main = print $ result
Было бы неплохо иметь представление о том, как они представлены в Haskell, учитывая его ленивый режим оценки.