# OBJECT wrapper class for cells
[hear] (class cell (initial-value)
(field content (make-cell (initial-value)))
(method get (get! (content)))
(method set (lambda (new-value)
(set! (content) (new-value))))
(method reset (self set (initial-value)))
(method unknown (lambda (x) ((objectify (self get)) (x)))));
[hear] (define cell-test1 (cell new 15));
[hear] (= 15 (cell-test1 get));
[hear] (cell-test1 set 82);
[hear] (= 82 (cell-test1 get));
[hear] (define cell-test2 (cell new (point new 120 150)));
[hear] (define cell-test3 (cell new (point new 300 300)));
[hear] (cell-test2 + (cell-test3) = (point new 420 450));
[hear] (not (cell-test2 = (cell-test3)));
[hear] (cell-test3 set (cell-test2));
[hear] (cell-test2 = (cell-test3));