Lift a placeholder - slot for concrete value to be filled in at a later stage
Register existing slot at this _stage_ with name name
Register existing slot at this _stage_ with original name
Try to evaluate (lower) lifted value using this stage
Do partial evaluation for lifted value, this folds all known-constant sub-tries and optimizes expressions
This is an implementation hook - register must save name,typeinfo pair to check type matching later
This is an implementation hook - bind must check that typeinfo matches and bind value to the lifted slot
Third implementation hook - lookup bound value for a given name
Simple stage that keeps slots as key-value pairs in built-in AA.
Could be used as is or as an example to build your own stage(s).