Test boolean operations
Provide names using patched monad-supply
Generalize unshadowing to lambdas