diff --git a/Options/Applicative/BashCompletion.hs b/Options/Applicative/BashCompletion.hs
--- a/Options/Applicative/BashCompletion.hs
+++ b/Options/Applicative/BashCompletion.hs
@@ -23,11 +23,12 @@
     complParser = asum
       [ failure <$>
         (   bashCompletionQuery parser pprefs
-        <$> (many . strOption) (long "bash-completion-word" <> internal)
-        <*> option (long "bash-completion-index" <> internal) )
+        <$> (many . strOption) (long "bash-completion-word"
+                                  `mappend` internal)
+        <*> option (long "bash-completion-index" `mappend` internal) )
       , failure <$>
           (bashCompletionScript <$>
-            strOption (long "bash-completion-script" <> internal)) ]
+            strOption (long "bash-completion-script" `mappend` internal)) ]
 
 bashCompletionQuery :: Parser a -> ParserPrefs -> [String] -> Int -> String -> IO [String]
 bashCompletionQuery parser pprefs ws i _ = case runCompletion compl pprefs of
diff --git a/Options/Applicative/Builder.hs b/Options/Applicative/Builder.hs
--- a/Options/Applicative/Builder.hs
+++ b/Options/Applicative/Builder.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 module Options.Applicative.Builder (
   -- * Parser builders
   --
@@ -47,7 +48,10 @@
   completer,
   idm,
   (&),
+#if __GLASGOW_HASKELL__ > 702
   (<>),
+#endif
+  mappend,
 
   -- * Readers
   --
@@ -76,7 +80,11 @@
   ) where
 
 import Control.Applicative (pure, (<|>))
-import Data.Monoid (Monoid (..), (<>))
+import Data.Monoid (Monoid (..)
+#if __GLASGOW_HASKELL__ > 702
+  , (<>)
+#endif
+  )
 
 import Options.Applicative.Builder.Completer
 import Options.Applicative.Builder.Arguments
@@ -173,7 +181,7 @@
 subparser :: Mod CommandFields a -> Parser a
 subparser m = mkParser d g rdr
   where
-    Mod f d g = m <> metavar "COMMAND"
+    Mod f d g = m `mappend` metavar "COMMAND"
     CommandFields cmds = f (CommandFields [])
     rdr = CmdReader (map fst cmds) (`lookup` cmds)
 -- | Builder for a flag parser.
@@ -223,11 +231,11 @@
 
 -- | Builder for an option taking a 'String' argument.
 strOption :: Mod OptionFields String -> Parser String
-strOption m = nullOption $ reader str <> m
+strOption m = nullOption $ reader str `mappend` m
 
 -- | Builder for an option using the 'auto' reader.
 option :: Read a => Mod OptionFields a -> Parser a
-option m = nullOption $ reader auto <> m
+option m = nullOption $ reader auto `mappend` m
 
 -- | Modifier for 'ParserInfo'.
 newtype InfoMod a = InfoMod
diff --git a/Options/Applicative/Extra.hs b/Options/Applicative/Extra.hs
--- a/Options/Applicative/Extra.hs
+++ b/Options/Applicative/Extra.hs
@@ -12,6 +12,7 @@
   ) where
 
 import Control.Applicative ((<$>), (<|>))
+import Data.Monoid (mconcat)
 import System.Environment (getArgs, getProgName)
 import System.Exit (exitWith, ExitCode(..))
 import System.IO (hPutStr, stderr)
@@ -26,15 +27,15 @@
 
 -- | A hidden \"helper\" option which always fails.
 helper :: Parser (a -> a)
-helper = nullOption
-       ( long "help"
-      <> reader (const (Left ShowHelpText))
-      <> noArgError ShowHelpText
-      <> short 'h'
-      <> help "Show this help text"
-      <> value id
-      <> metavar ""
-      <> hidden )
+helper = nullOption $ mconcat
+       [ long "help"
+       , reader (const (Left ShowHelpText))
+       , noArgError ShowHelpText
+       , short 'h'
+       , help "Show this help text"
+       , value id
+       , metavar ""
+       , hidden ]
 
 -- | Run a program description.
 --
diff --git a/optparse-applicative.cabal b/optparse-applicative.cabal
--- a/optparse-applicative.cabal
+++ b/optparse-applicative.cabal
@@ -1,5 +1,5 @@
 name:                optparse-applicative
-version:             0.5.1
+version:             0.5.2
 synopsis:            Utilities and combinators for parsing command line options
 description:
     Here is a simple example of an applicative option parser:
