h*D      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 0.2.2.0 Safe-Inferred- monadic-bangdo let s = pure "outer" let s = pure "inner" in putStrLn !sYou might expect this to print inner, but it would actually print outer , since it would be desugared to do let s = pure "outer" <- s let s = pure "inner" in print With this function, the plugin will instead throw an error saying that s cannot be used here. If the first s weren't defined, the user would, without this function, get an error saying that s is not in scope, at the call site. Here, we instead throw a more informative error.If only the first s were defined, i.e. &do let s = pure "outer" putStrLn !sit would be valid code.86789:;?><=@ABCFEDGHIJKNMLOPQRSTUVWXYZ[\]^_`abcdefghijklm8KNMLJIGHPQRSCFEDTUVWXYZ[O\]B@A;?><=^_`abcdef:9867ghijklm Safe-Inferred~~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~monadic-bang-0.2.2.0-inplace!MonadicBang.Internal.Effect.Offer#MonadicBang.Internal.Effect.Uniques*MonadicBang.Internal.Effect.Writer.DiscardMonadicBang.Internal.ErrorMonadicBang.Internal.OptionsMonadicBang.Internal.UtilsMonadicBang.Internal MonadicBang monadic-bangOfferC getOfferStateOfferYoinkyoinkrunOffer$fAlgebra:+:OfferC$fFunctorOfferC$fApplicativeOfferC $fMonadOfferCUniquesCgetUniquesStateUniques FreshUnique freshUnique runUniquesIO runUniques$fAlgebra:+:UniquesC$fFunctorUniquesC$fApplicativeUniquesC$fMonadUniquesCDiscardC evalDiscardC evalWriter$fAlgebra:+:DiscardC$fFunctorDiscardC$fApplicativeDiscardC$fMonadDiscardCPsErrorsErrorErrOutOfScopeVariableErrBangOutsideOfDo customError tellPsErrorOptions MkOptions verbositypreserveErrorsPreserveErrorsPreserve Don'tPreserve VerbosityDumpTransformedQuiet parseOptionsTryHandlerDList fromDList??panicBindStmt:<-Fill LocalVars HoleFillsHandleCanFailAstTypeEffectshandle'HandlingMonadTranstoMaybeT HandleFailureInScope MkInScope$sel:valid:MkInScope$sel:invalid:MkInScopeOccsMkOccsLExprExprLocMkLoc$sel:line:MkLoc$sel:col:MkLocExprLoc emptyOccs extendOccselemOccsunitOccs noneInScopeaddValid addValidsinvalidateVars isInvalidbangLocbangSpan bangSrcLoc spanToLoc replaceBangshandletry fillHolesevactryEvac usualTriesignoreevacPatsaddStmts bindStmtExpr bindStmtSpan fromBindStmtbangVarlocVartellOne tellLocalVar $fMonoidOccs$fSemigroupOccs$fMonoidInScope$fSemigroupInScope$fHandlingMonadTransMaybeT$fHandlingMonadTransIdentityT$fHandleFUNStmtLR$fHandleFUNHsExpr$fHandleFUNPat$fHandleFUNHsBindLR$fHandleFUNMatch$fHandleFUNMatchGroup$fHandleFUNGRHSs$fEqLoc$fOrdLoc $fShowLocplugin