Use Maybe rather than a Maybe transformer.
Disallow name shadowing.
Fix double-usage of unique name generator.

This was a pretty nasty one to find.
Fix another name-reuse bug.

This one was easier to find.