#lang racket
(require [only-in plait test test/exn error print-only-errors])
(define (msg obj selector . args)
(apply (obj selector) args))
(define o-self-no!
(lambda (m)
(case m
[(first) (lambda (self x) ((self 'second) self (+ x 1)))]
[(second) (lambda (self x) (+ x 1))])))
(test (msg o-self-no! 'first o-self-no! 5) 7)