I'm no longer writing several ambiguous definitions for + and *.  Now using parametric types.