Cool.

I would still replace that by assert(). require() seems more suited for checking the method arguments, and anyway at this time everything is being checked at runtime.