Changed Prod implementation to use foldl which uses redex's and is more efficient