rename 'do' to 'begin' to match Scheme

and test it, though it's completely useless
when there are no side effects.
avoid Data.Map.Strict: it's newer than the latest Haskell Platform
update a comment