Addition of Prod

Modified the Sum typeclass to avoid trigerring divergent implicit
expansions.
Added Prod typeclass.