Haskell/Time and space profiling

In every language, profiling is the first crucial step of performance optimization. Otherwise, it is difficult to understand correctly what is the cause of bad performance, even for many experienced programmers. In addition, in Haskell, space leaks are a frequent source of problems with laziness. This means that learning to use profiling is important.