When a is unevaluated, spec g a evaluates the current continuation
with g while testing if g==a, if they differ, it re-evalutes the
continuation with a. If a was already evaluated, the continuation is
just directly applied to a instead.