This habit of monkeypatching core functions was what drove me away from Ruby. Even adorable little trapdoors like the map() example can lead to issues with performance, stability, documentation, or (
ahem) unit tests that now have to reflect this new behavior but only in certain circumstances.
I understand the coolness of it. All I object to is this "__builtin__.old_map = map" fuckery. It's what people mean when they say "too clever, by half".