Switch to RecursiveDo pragma to remove warnings on GHC 7.6+

GHC 7.6 deprecates DoRec in favor of RecursiveDo. Switch to using
the preferred pragma. (This will cause a warning on 7.4, which
deprecated RecursiveDo in favor of DoRec. Not much to be done about
that.)

Also switch to 'mdo' from 'do rec'. In 7.4 both forms performed
segmentation; in 7.6, only mdo does. This probably doesn't matter
to our tiny recursive snippet, but segmentation is generally the
better default.