add catch, map except effect and convenience functions

maybe the name `withExcept` is not the best. i would have prefered `mapExcept`, but that's something different in transformers. maybe that's ok though.