[REPLCompletions] fix #52099 by adjusting effects of `HAMT` methods (#52331)
After looking into #52099, I discovered that it has the same root cause
as #51548. Essentially, when a method that's not `!effect_free` is
applied to a `Const` value concretized by the `REPLInterpreter`'s
aggressive inference, since the `!effect_free` method will not be
concretized, it will eventually lead to the `Const` representing
unexpected object being returned.
This commit tries to fix the specific problem reported in #52099 by
enhancing the effects of `Base.HAMT` methods, so they're
concrete-evaled.
Admittedly, this is more of a quick fix than a complete solution, and
not the best one, but it was the simplest. A better solution might
involve implementing EA's handling of `Memory`-objects that allows the
compiler to automatically prove `:effect_free` in more scenarios. But
this would need a bigger overhaul, so I plan to tackle it in another PR.