Irrational division

This implements a very simple kind of multiple dispatch, with method
selection down to declaration ordering (first match wins, rather than
the more useful most specific match wins).