+(load "actors.scm")
+
+(define trace-enabled #t)
+
+(define ((make-counter-behaviour value) self customer . args)
+ (match args
+ (('get) (send-message customer value) 'sleep)
+ (('inc delta) (make-counter-behaviour (+ value delta)))))
+
+(define println
+ (make-actor-with-address 'println
+ (lambda (self . message)
+ (apply print message)
+ 'sleep)))
+
+(define counter0 (make-actor (make-counter-behaviour 0)))
+
+(send-and-run counter0 println 'get)
+(send-message counter0 println 'inc 3)
+(send-message counter0 println 'get)
+(send-message counter0 println 'inc 2)
+(send-and-run counter0 println 'get)