import some_lib
d = some_lib.their_dict({1:1, 2:2})
keys = [1,2,3]
for key in keys:
a = d.get(key, lazy(lambda:3))
if a == 3:
...
#oops this never triggers
The problem I saw with the Backquotes for deferred expression, is that they too wanted to resolve the deferred expression automatically, rather than explicitly. I don’t see how there can be a good way to do that. Any time you want to work with deferred expressions and you want things to be well-defined and not insidiously surprising, you have to have a mechanic like
real_exp = resolve(def_exp)
or
real_exp = def_exp()