added NoImplicitPrelude for ghc head