[...]
maybe!(a.b)
which would translate to:
$tmp = a; None if $tmp is None else ($tmp.b)
This reminds me very much of PL/1's "compile-time procedures," which forty years ago were pretty much like PL/1 constructs with percent signs sprinkled about. I didn't like those much, either ;D.