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

работает, но кажется излишним.

Ответы на вопрос(3)

Ваш ответ на вопрос