require 'smart_pointer_multi'

include Smart_pointer_multi

f = Foo.new
b = Bar.new(f)
s = Spam.new(b)
g = Grok.new(b)

s.x = 3
raise RuntimeError if s.getx() != 3

g.x = 4
raise RuntimeError if g.getx() != 4

