wait :: Def ('[Sint32, Sint32] :-> Sint32)
wait = proc "wait" $ \ n i ->
  requires (n >=? 0) $
  requires (i >?  0) $
  ensures  (\ result -> result >?  0) $
  ensures  (\ result -> result >? 10) $
  body $ do
    iters <- local (ival 0)
    call_ waitLoop n i iters
    itersValue <- deref iters
    ret itersValue
wait :: Def ('[Sint32, Sint32] :-> Sint32)
wait = proc "wait" $ \ n i ->
  requires (n >=? 0) $
  requires (i >?  0) $
  ensures  (\ result -> result >?  0) $
  ensures  (\ result -> result >? 10) $
  body $ do
    iters <- local (ival 0)
    call_ waitLoop n i iters
    itersValue <- deref iters
    ret itersValue
wait = proc "wait" $ \ n i ->
  requires (n >=? 0) $
  requires (i >?  0) $
  ensures  (\ result -> result >?  0) $
  ensures  (\ result -> result >? 10) $
  body $ do
    iters <- local (ival 0)
    call_ waitLoop n i iters
    itersValue <- deref iters
    ret itersValue