lazy fold/2 is renamed to reduce/2, enchancements on mapfold funtion to accumulate results