ex5.4 - forAll - tail recursive pattern mattch implementation, and a foldRight implementation; although the foldRight implementation has limitations