#lang racket/base
(provide object-id)
(define table (make-weak-hasheq))
(define next 0)
(define (object-id x)
(hash-ref! table x (lambda () (let ((v next)) (set! next (+ v 1)) v))))