úÎ *4&      !"#$% @There is a very important distinction between this function and   5: in this version, the monadic side effects from the I initialization function and kept, while in bracket_ they are discarded. See  .      !"#$% !"#$%#"$% ! !"#$%&      !"#$%&'( neither-0.1.0Control.Monad.Invert Data.NeitherrevertIOinvertIO InvertedArg InvertedIO MonadInvertIOfinally onExceptioncatchblockunblockbracketbracket_alloca allocaByteswithForeignPtreitherrightleftNeitherMLeftMRightMEitherALeftARightAEither runMEitherTMEitherTmapLeftmapRight mapEitherleftsrightspartitionEithersmeitheraeither mapMEitherT throwMEither