+ #:cleanup #f))
+ (test-equal '("POOF\n" "Cleaning up post-explosion\n")
+ (get-spoken)))
+
+(define-class <hi-on-init> (<actor>)
+ (name #:init-keyword #:name)
+ (create-friend #:init-value #f
+ #:init-keyword #:create-friend)
+ (actions #:allocation #:each-subclass
+ #:init-value (build-actions
+ (*init* hi-on-init-init))))
+
+(define (hi-on-init-init actor message)
+ (speak (format #f "Hi! ~a inits now.\n"
+ (slot-ref actor 'name)))
+ (and=> (slot-ref actor 'create-friend)
+ (lambda (friend-name)
+ (create-actor actor <hi-on-init> #:name friend-name))))