Refactor type combining to use default methods.  Woohoo!