Alguien me puede ayudar a entender por qué esto no falla?
[r | z <- [], r <- [1..z]]
Yo imaginaría que al no haber nada para z, la expresión r <- [1..z] fallaría, pero en vez la expresión total devuelve una lista vacía. No entiendo qué está pasando de fondo aquí para que devuelva lista vacía en vez de una excepción.