On Tue, Jun 19, 2012 at 5:17 PM, Hal Fulton <rubyhacker / gmail.com> wrote:
> Personally, I don't have a problem with "reducing the contract"
> of a String.

It's just that Ruby is not particularly suited to using inheritance in
different ways.  In Eiffel you can do all this and do it visibly.  In
Ruby there's just mixing in modules and class inheritance.

> Freezing an object also reduces its contract.

Kind of.  But I consider that a special case because freeze prevents
all mutations but not other operations.  It also does not restrict the
range of valid state - it just freezes it.

Kind regards

robert

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/