Hi,

In message "[ruby-talk:01391] Some Questions - Parameterised Types / Invariants"
    on 00/02/15, Nigel Rantor <wiggly / wiggly.org> writes:
>1. Parameterised Types / Template Classes
>
>Are there any plans to add the above to Ruby? If not how do you guys
>think the best way to implement type (class) safe generic data
>structures is?

Several months ago, I wrote parametic class helper mix-in. 
http://www.math.sci.hokudai.ac.jp/~gotoken/ruby/p/junk/paramclass.rb

I put an example FixedSizeArray [ruby-list:18744] below. 

-- gotoken

require "paramclass" class FixedSizeArray include Parametric include Enumerable def size; parameters[0]; end def default_value; parameters[1]; end def self.[](*args); self.new(*args); end def initialize(*args) @ary = args s = @ary.size raise ArgumentError, "Too many initial values" if s > size @ary.fill(default_value, s, size - s) end def [](n) if n < -size or size <= n raise IndexError, "index out of range" end @ary[n] end def []=(n,v) if n < -size or size <= n raise IndexError, "index out of range" end ary[n] = v end def each(&blk) @ary.each(&blk) end def inspect @ary.inspect end end # example a = FixedSizeArray(5, "")["foo", "bar", "baz"] #=> ["foo", "bar", "baz", "", ""] a.is_a? FixedSizeArray(5, "") #=> true