Я пытаюсь выяснить, использует ли Haskell динамическое или статическое определение. Я понимаю, что, например, если вы определяете:
let x = 10
затем определим функцию
let square x = x*x
У вас есть 2 разных "х", и означает ли это, что они динамически охвачены? Если нет, то какая область применения используется и почему?
Кроме того, могут ли переменные Haskell иметь псевдонимы (другое имя для того же места/значения памяти)?
Спасибо.