#Java-style object-orientation leading to this funky code, aka #CallbackHell
InputBuilder builder = InputBuilder.create(io).add("disk", size).push("holds").add("on", peg.getName()).markWme("peg").add("disk", size).add("above", getAbove(below)).markWme("above").top();