Haskell: deje que la declaración, copie el tipo de datos a sí mismo con / sin modificación no funciona

Quiero actualizar una sintaxis de registro con un cambio en un campo, así que hice algo como:

let rec = rec{field = 1}

Pero me di cuenta de que no puedo imprimirrec más, significa que el compilador parece entrar en un bucle infinito cuando lo intento. entonces he intentado hacer:

let a = 1 -- prints OK

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

Entonces no puedo hacerlet a = a con cualquier tipo, pero no entiendo por qué y cómo debería resolver este problema.

Por cierto: mientras haces:

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

let a = b

funciona, pero parece redundante.

Respuestas a la pregunta(3)

Su respuesta a la pregunta