To be honest it was a bit of a hybrid, that was not destructive, but did return nil when the merge fails. I have now made it destructive and added the ! to clarify this. This brings it in line with standard methods such as Array.flatten!