Require GHC >= 7.8
Minor refactoring