Fold a list using the monoid.
For most types, the default definition for mconcat will be
used, but the function is included in the class definition so that an
optimized version can be provided for specific types.
Warning: This is a partial function, it throws an error on empty
lists. Use pattern matching, uncons or listToMaybe
instead. Consider refactoring to use Data.List.NonEmpty.