Define semigroup instances
This makes the code `-Wcompat`-clean with GHC 8.0 Due to the amount of `Monoid` instances, a compat-layer is used rather than flooding the code-base with CPP conditionals.
This makes the code `-Wcompat`-clean with GHC 8.0 Due to the amount of `Monoid` instances, a compat-layer is used rather than flooding the code-base with CPP conditionals.