lecture 18: add IOMcn.hs