suggestion: use lazy pattern matching for Monoid instances of tuples