srecord Offer(S description, Runnable action) implements Runnable { run { callF(action); } toString { ret description; } }