function(a) { var x = Json.of(JSON.parse(JSON.stringify(a))), y = Json.of(a).writeProp('a', a.a + 1); // Mutate the state to test against! x.x.r.a += 1; return equality.equals(x.x, y.x); },
function(a) { return equality.equals(Json.of(a).readProp('a').readAsBoolean().x.r, a.a); },
function(a) { var x = Json.of(JSON.parse(JSON.stringify(a))), y = Json.of(a).writeProp('v', a.a + 1); return !equality.equals(x.x, y.x); },
function(a) { var x = Json.of(a.a), y = Json.of(a).readProp('v'); return !equality.equals(x.x, y.x); },
function(a) { var x = Json.fromString(JSON.stringify(a)), y = Json.of(a); return equality.equals(x, y); },
function(a) { return equality.equals(Json.of(a).readProp('a').readAsObject().x.r, a.a); },