changed sumMonoid to fold, added foldMap