From: Martin DeMello Date: 2002-03-05T13:19:13+09:00 Subject: modules and types I'm trying to provide an extension to Range that is only valid within the context of a few classes; however, wrapping it in a module causes kind_of? to stop identifying ranges as such. Note that this works perfectly if I just extend Range inside the file, without using a module. What's the difference? module ExtendRange class Range def foo "bar" end end end class A def test r = (1..10) [r.kind_of?(Range), r.type == Range, r] end end class B include ExtendRange def test r = (1..10) [r.kind_of?(Range), r.type == Range, r.type] end end a = A.new b = B.new p a.test # => [true, true, Range] p b.test # => [false, false, Range] -- Martin DeMello