lazyness, ex4 'forAll'
lazyness, ex5 'takeWhile via foldRight'
lazyness, ex7 'map' and 'filter'