fixed 3.b - the question was about the inner functions; fixed 3.c - the first two functions are lazy-evaled, while the last two are eager-evaled
ignore tmp *~ files