Turned on Werror and decreased optimisation level to O2
hlint cleanup: removed redundant do
hlint cleanup