be AMP-happy
some IO elimination
more IO elimination: defined diffM
diffIO and diffM now behave identically:

*Data.Generic.Diff> patch (diffM (return True) (return False) :: EditScript (BFam EIO) (EIO Bool) (EIO Bool)) (return True)
Licht AUS
False
*Data.Generic.Diff> patch (diffIO (return True) (return False)) (return True)
Licht AUS
False
cleanup