Haskell: оператор let, копирование типа данных на себя с / без модификации не работает
Я хочу обновить синтаксис записи с изменением в одном поле, поэтому я сделал что-то вроде:
let rec = rec{field = 1}
Но я заметил, что я не могу печататьrec
больше, значит, компилятор, кажется, попадает в бесконечный цикл, когда я пытаюсь. поэтому я попытался сделать:
let a = 1 -- prints OK
let a = a -- now i can't print a (also stuck in a loop)
Так что я не могу сделатьlet a = a
с любым типом, но я не понимаю, почему и как я должен решить эту проблему.
Кстати: при этом:
let b = a {...record changes..}
let a = b
работает, но кажется излишним.