Haskell ListOps iterations 2, 3

2 - correct strictness
2 & 3 - implement map and filter with folds