Here is the list of changes in the programming interface of MetaRuby; they
will matter if you have written code for MetaRuby 0.5. 



If you are using the assertion-checking features of the mixin classes, 
you have a class built like:

class Foo
	include ThingMixin
	include ThingInterfaceSafe
	def safe_foo ... end
	def safe_bof ... end
	def safe_zut ... end
end

you'll have to change it to:

class Foo
	module Implementation
		def foo ... end
		def bof ... end
		def zut ... end
	end
	include ThingMixin
	include Implementation # comes after *Mixin and before *Contract
	include ThingContract
end

this means you can now remove assertion-checks just by commenting out the
contract inclusion.



furthermore, a few interface methods have been renamed:

ArrayInterface#get_many  -> get_seq
ArrayInterface#put_many  -> put_seq
StringInterface#get_many -> get_seq
StringInterface#put_many -> put_seq
HashInterface#[]=        -> put      (also now must return nil instead)

the four first is to reserve the #get_many and #put_many names for future
additions for which those names are more appropriate.

the last one is to: make Hash* more like Array* and String*; increase
efficiency; make #put do exactly one thing (#[]= does two: it returns
#get)



matju