Expand description
Monoid type class extends the Semigroup and adds an empty function for the type
empty function same as Default
use funlib::{Monoid, Semigroup, Foldable::*};
let sum = vec![1i32,2i32,3i32,4i32].fold(i32::mempty(), |b,a| i32::mappend(&b, a));
assert_eq!(10i32, sum);
assert_eq!(None::<i32>, Option::<i32>::mempty());