diff --git a/Text/Appar/Parser.hs b/Text/Appar/Parser.hs
--- a/Text/Appar/Parser.hs
+++ b/Text/Appar/Parser.hs
@@ -72,15 +72,15 @@
     f `fmap` p = return f <*> p
 
 instance Applicative (MkParser inp) where
-    pure  = return
-    (<*>) = ap
+    pure a = P $ \bs -> (Just a, bs)
+    (<*>)  = ap
 
 instance Alternative (MkParser inp) where
     empty = mzero
     (<|>) = mplus
 
 instance Monad (MkParser inp) where
-    return a = P $ \bs -> (Just a, bs)
+    return   = pure
     p >>= f  = P $ \bs -> case runParser p bs of
         (Nothing, bs') -> (Nothing, bs')
         (Just a,  bs') -> runParser (f a) bs'
diff --git a/appar.cabal b/appar.cabal
--- a/appar.cabal
+++ b/appar.cabal
@@ -1,5 +1,5 @@
 Name:                   appar
-Version:                0.1.6
+Version:                0.1.7
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
@@ -11,13 +11,17 @@
 Build-Type:             Simple
 Extra-Source-Files:     README
 library
-  GHC-Options:          -Wall -Wcompat -Wnoncanonical-monadfail-instances
+  GHC-Options:          -Wall
   Exposed-Modules:      Text.Appar.String
                         Text.Appar.ByteString
                         Text.Appar.LazyByteString
   Other-Modules:        Text.Appar.Input
                         Text.Appar.Parser
   Build-Depends:        base >= 4 && < 5, bytestring
+  if impl(ghc >= 8.0)
+    GHC-Options:        -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances
+  else
+    Build-Depends:      fail == 4.9.*
 Source-Repository head
   Type:                 git
   Location:             git://github.com/kazu-yamamoto/appar.git
