Defined unimplemented API for deferred factories.
WIP: added in some more plumbing in support of the implementation for deferred factories; not yet complete.
WIP: fleshed out support for deferral budget in factory implementation, but there is no corresponding support from the nodes yet.
Merge from 'main'.
WIP: added in node constructor to represent node deferrals. Not yet used in the implementation.
WIP: cutover planned implementation to producing a map of alternative node trees at different budget allocations. Almost ready - but not a single test for the new functionality. Passes all existing tests right now.
Completed the untested implementation of deferred factories - and there is a bug revealed in an example test. Not sure if this has been in for a while, so I'll commit and then go back and find the first point of failure.
Fix bug observed in example test for generating graphs - 'CollectAcrossMaps' must handle the trivial case of an empty list of maps.
Use sorted association lists rather than maps to map from deferral budget to node tree.
Added in an example test to show the use of the Deferral factory, plus corrected some silly mistakes made in the factory API. The example test does not pass by visual inspection.
WIP: introduce the concept of splitting syntheses into alternatives that conform to the same deferral budget - this allows subtrees to vary indepenently, as long as at least one actually uses up the budget. I can't even believe this code compiles. It does pass the existing tests, though. OMG!
WIP: introduce the notion of the number of deferrals actually spent on the way down to a terminal node. There is a bug - doesn't progressively deepen.
Removed the awful pruning support from the F# curried function synthesis API and replaced it with something that both works with the new generalised pruning and is also easier to understand. It all works! Generates test cases progressively. Just one fly in the ointment - there is at least one test failure in the existing tests.
Bugfix for pruning of synthesis of an empty list of subtrees.
Add new example test showing binary operand expressions generation using the deferral API.
Improve naming in deferral example test.
Decompose full test vector slice list left to right in curried function synthesis implementation.
Amend previous commit so that nodes are still decomposed right-to-left in curried function synthesis.
Merge in simplified curried function synthesis implementation.
Cover deferrals with some of the existing unit tests for factories.