Hola Santiago,
Me acabo de dar cuenta que me quedó por responder tu consulta.
Notá que (foldr (:) c [[1,2]]) da como resultado la lista ([1,2] : c), de la cual se pide retornar la cabeza con head, devolviendo entonces [1,2]. En este caso c no es demandado y por lo tanto, por lazy evaluation, no se lo va a inspeccionar. Por el tipado, lo único que se sabe de c es que es una lista de lista de enteros.
Saludos,
Alberto.
Me acabo de dar cuenta que me quedó por responder tu consulta.
Notá que (foldr (:) c [[1,2]]) da como resultado la lista ([1,2] : c), de la cual se pide retornar la cabeza con head, devolviendo entonces [1,2]. En este caso c no es demandado y por lo tanto, por lazy evaluation, no se lo va a inspeccionar. Por el tipado, lo único que se sabe de c es que es una lista de lista de enteros.
Saludos,
Alberto.