Add `Extend` and `Semigroup` instances.