So, i have added in functionality that allows for typing in such a way that
you can either return a singleton set or a normal set of solutions. This
will later allow for loops to be used within the structure and for genetic
operators that take only a single solution from a child node.

TODO:

mating operator for bbsa

randomizationn for selection nodes that return single object

change fillTerm to add a selectionif the parent needs a singleton

probably a few other things