js.compile.ignore=true ===== >>> main.whiley type Rec is {int f, int g} function setz(Rec rec, int x, bool f) -> (Rec r) ensures f ==> (r.f == x && r.g == rec.g) ensures !f ==> (r.g == x && r.f == rec.f): if f: return rec{f:=x} else: return rec{g:=x} public export method test(): Rec rs = {f:1,g:2} assert setz(rs,0,true) == {f:0,g:2} assert setz(rs,0,false) == {f:1,g:0} // assert setz(rs,4,true) == {f:4,g:2} assert setz(rs,4,false) == {f:1,g:4} // assert setz(rs,5,true) == {f:5,g:2} assert setz(rs,5,false) == {f:1,g:5} ---