Amazingly, Haskell can sometimes detect unwanted infinite loops at runtime: https://stackoverflow.com/a/21554398 (and you can even catch the exception!)