Gavin Sinclair wrote:

> String#concat is another popular trap for young players.


That's a weird one.  I would probably expect there to be String#concat 
and String#concat! with
appropriate implementations.

However, don't forget the #concat operator:

s = "hi"
s << " there"
p s # => "hi there"

For some reason it doesn't surprise me that this modifies s while 
#concat does.

- Dan