module Labels

  use int.Int
  use ref.Ref

  function fst (x: ('a, 'b)) : 'a = let (x1, _) = x in x1

  let test (a: (ref int, int))
    ensures { !(fst a) = (old !(fst a)) + 1 }
    = let (r,_) = a in r := !r + 1

end
