>> # Built-in adaption routes that Ruby already uses in its C code. >> adaption :to => Symbol, :via => :to_sym >> adaption :to => String, :via => :to_str >> adaption :to => Array, :via => :to_ary >> adaption :to => Integer, :via => :to_int That's interesting. Is this data accessable via pure Ruby code? I was playing with a lib that provided these like so: class Symbol def self.coercer ; :to_sym ; end def self.convertor ; :intern ; end end class Array def self.coercer ; :to_ary ; end def self.convertor ; :to_a ; end end class Hash def self.coercer ; :to_hash ; end def self.convertor ; :to_h ; end end class String def self.coercer ; :to_str ; end def self.convertor ; :to_s ; end end Etc. that way any class could provide the information. T.