static A varyBackgroundWithBoxes(A s) { s = cloneThroughStructure(s); if (oneIn(10)) s.background = varyColor(s.background); else if (tossCoin()) replaceRandomElement(s.boxes, randomBox()); else varyBox(random(s.boxes)); ret s; }