renamed union() to branch(). Added fold() seed+bifunction capability. More test cases.