table tab : {Id : int, Val : int} PRIMARY KEY Id
fun check id =
res <- oneOrNoRows (SELECT tab.Val FROM tab WHERE tab.Id = {[id]});
return
cache
{case res of
None => ?
| Some row => {[row.Tab.Val]}}
fun flush id =
dml (UPDATE tab SET Val = Val + 1 WHERE Id = {[id]});
return
Changed {[id]}!