Move monads-related auxiliary classes to an Auxiliary trait/object
Rename SemiGroup to Semigroup and pose Monoid type class constraint to Writer's second argument
Add "Purely functional logging" section of the Readme along with correspondent specification