Phil Tomson wrote:
> The Matrix module could be changed so that an optional C code version is 
> require'd - if that require fails, then no problem, you've still got the pure 
> Ruby implementation.  It'll be slow but it will work.  If the require 
> of the shared library containing the Ruby/C implementation succeeds, 
> then you've replaced some speed-critical methods in the class/module with 
> faster C implementations of those methods.

IIRC, YAML and Syck work that way.