scope test_BStack /* Goal: Java code with backtracking, like this, to return 4 different values: S color = "black" or "white"; S shape = "circle" or "square"; return "A " + color + " " + shape; */ sclass #OneBranch extends VStackComputableWithStep { S color, shape; void step(VStack stack) { cast stack to BStack; if (step == 0) { step = 1; stack.options(this, f -> f.color = "black", f -> f.color = "white"); } else stack.return("Color is " + color); } }} svoid test_BStack() { assertListEqualsVerbose( ll("Color is black", "Color is white"), new BStackComputeAllWithPrintStruct(new OneBranch)!); }