I had reason to need a sorted map recently and thought it might be a useful exercise to write it as a complete drop-in replacement for Hash, backed by a sorted array. An hour or so later: http://pastie.caboo.se/62458 A few questions arose while I was writing which I'd like to pose to y'all: 1. I'm storing entries as struct objects, the class definition for which is stored in a class constant. Good or bad practice? I note that I get a constant redefinition warning when I reload the class. I could easily enough use a two element array, but thought a struct would be more efficient and be more clear. 2. I'm extending Hash, not because I need to, but so that I could pass kind_of? tests if necessary. Good or bad practice? 3. I had vaguely thought that the default freeze implementation would freeze all instance variables, but it does not. Is this a good way to implement freeze? (with the exception of the incorrect return value?) 4. Should I be checking block_given? in delete_if, et. al.? Should I be explicitly declaring a &blk argument? Thanks for any tips. - donald