problem 2b: mlet*