Generic Programming using True Sums of Products
