+
+
+-- | We provide our own sum because sum relies on a Num instance
+-- from the Prelude that we don't have.
+--
+-- Examples:
+--
+-- >>> import Data.Vector.Fixed (mk3)
+-- >>> let b = mk3 1 2 3 :: Vec3 Int
+-- >>> element_sum b
+-- 6
+--
+element_sum :: (Additive.C a, Ring.C a, Vector v a) => v a -> a
+element_sum = foldl (+) (fromInteger 0)