Phrogz wrote: >It would be effective to simply say "Hey, if you include this module in >your class, you need to supply @foo or else it'll break". But for some >reason that seems wrong to me. > > Why? Enumerable requires you to supply #each. Another possibility: module Foo def foo_name=(foo_name) @foo_name = foo_name end end class Bar include Foo def initialize(name) self.foo_name = name end end Your way seems like a lot of (confusing, to me) overhead which not much benefit, pragmatic or idealogical. But I could be missing something. Devin