interesting example of lazyness/ghc optimisation