ADD: "which preserves polymorphism and reduces the number of function clauses necessary."