Ivan, >> in `size` function, what does the `~` mean ? > A lazy pattern match: http://en.wikibooks.org/wiki/Haskell/Laziness > (there is a better name for it, but I can't remember). Irrefutable pattern? ;-) Cheers, Stefan