GENERATE: Generates a previously-unseen term using a term zoo
REMOVE AND LIFT: Removes a sub-term from a term and attaches orphaned children to the parent
(such that types match). This only works if there is only a single child.
REPEAT: Repeats an input which is already part of the trace
REPLACE-MATCH: Replaces a function symbol with a different one (such that types match).
REPLACE-REUSE: Replaces a sub-term with a different sub-term which is part of the trace
(such that types match). The new sub-term could come from another step which has a different
recipe term.
SKIP: Removes an input step
SWAP: Swaps a sub-term with a different sub-term which is part of the trace
(such that types match).