Formatting tidy-up + inclusion of Semigroup.
Build file.