A typical first-order jump looks like
(... (const p (code somewhere ...)) (jump p a1 a2))
Cogen needs to know the destination of the jump in order to generate an extension for it (see jumps). Thus the code-pointer must be in the binding time. The lattice can be extended to include constants (though only constants that are code-pointers are needed for jumps, other constants come in handy):
bt ::=S
|D
| (cons bt bt cp) | (const v) cp ::= instruction v ::= any-value
BTs that are constants are called metastatic because when a specializer is self-applied they are static for the outer specializer (the one that is analyzing the inner specializer).
Formal ordering requires an additional rule:
(const v) < S
Since metastatic values are incomparable, this doesn't introduce any infinite ascending chains.