Simon Peyton Jones stesso riconosce quel ragionamento sulle prestazioni in Haskell è difficile a causa della semantica non rigida.
Devo ancora scrivere un progetto significativo in haskell, quindi mi chiedo: posso ragionare sulle prestazioni solo all'inizio di un progetto (quando scelgo le strutture dati di base e la libreria IO) e ogni volta che si presenta un problema, gestiscilo con il profiler?
Per dirla in modo diverso, è possibile (cioè non troppo doloroso) posticipare la gestione delle prestazioni in caso di problemi di prestazioni, o devi imparare a prevedere come GHC eseguirà il tuo codice (ad esempio: deduci cos'è il rigore l'analizzatore deciderà)?