I think you have a typo in your Monoid instance. The string should not be empty for the test to fail
concat(x, empty) is equal to x + ' ' + empty by definition of concat. If x = '' then x + ' ' + empty is equal to '' + ' ' + '' which is equal to ' ' so concat(x, empty) !== x
x + ' ' + empty
x = ''
'' + ' ' + ''
concat(x, empty) !== x
Ah, yeah, I missed the extra space in the Semigroup instance
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.