Haskell: declaração, copie o tipo de dados para si mesmo com / sem modificação não funcionando

Quero atualizar uma sintaxe de registro com uma alteração em um campo, então fiz algo como:

let rec = rec{field = 1}

Mas notei que não consigo imprimirrec mais, significa que o compilador parece entrar em um loop infinito quando tento. então eu tentei fazer:

let a = 1 -- prints OK

let a = a -- now i can't print a (also stuck in a loop) 

Então eu não posso fazerlet a = a com qualquer tipo, mas não entendo o porquê e como devo resolver esse problema.

BTW: enquanto fazia:

let b = a {...record changes..}

let a = b

funciona, mas parece redundante.

questionAnswers(3)

yourAnswerToTheQuestion