From: "T. Onoma" Date: 2003-11-21T05:52:57+09:00 Subject: Partial Euphoric Type Checking Greetings all Type Checkers! I have implemented a version of euphoria's type system in Ruby. # the good stuff module Kernel def typechecking(x=nil) return $_tc if x == nil $_tc = x ? true : false end end class Module def type(tname, &check) define_method(tname) do |*v| if $_tc unless v.all? { |y| check.call(y) } raise TypeError end end return *v end end end # demonstrate how it feels class TypeTest type :big4 do |x| x > 4 end def ameth(x) # -- type checking -- big4 x # -- rest of code -- puts x end end typechecking true # turn type checking on t = TypeTest.new t.ameth(5) # => 5 t.ameth(2) # => TypeError Now if you can just get matz to add a little sytax sugar for type and inline parameter methods: class TypeTest type big4(x) x > 4 end def ameth(big4 x) puts x end end would that quell the need? -t0