Add initial implementation of partial evaluation
These changes introduce a new evaluation mode in topdown that allows callers to mark input, data, or variables as unknown. The result of partial evaluation is a new set of queries that can be executed when the inputs become known. When topdown partially evaluates a query, it saves expressions that it cannot evaluate so that they can be returned to the caller. As part of these changes, the binding list has been updated so that variables can be mangled when a plug operation is performed. This allows variables to be correctly namespaced when they're inlined into parent queries as part of partial evaluation.
T
Torin Sandall committed
ceed94d4725e7b1f7aef704d5ab7c4d2eb8cdf55
Parent: 2d7f6c3