Fix test failures and tidy up the Synthesis API - now using explicit generic type variable parameters, and have stopped using flexible type constraints in methods - they aren't necessary in a plain .NET method, according to the F# specification.
Revisit use of type inference to simply the implementation of Synthesis - but keeping the declared method types with their explcit type annotations intact.
Remove those annoying delegate types for various function arities - use the overloaded 'Func' delegate type instead. Have kept 'SequenceCondensation' and 'Permutation' for the time being, though.