#lang plait
(define MEMORY (make-vector 100 -1))
(define next-addr 0)
(define (reset) (set! next-addr 0))
(define (write-and-bump v)
(let ([n next-addr])
(begin
(vector-set! MEMORY n v)
(set! next-addr (add1 next-addr))
n)))
(define (store-num n)
(write-and-bump n))
(define (read-num a)
(vector-ref MEMORY a))
(test (read-num (store-num 42)) 42)