diff --git a/Data/IP/Internal.hs b/Data/IP/Internal.hs
new file mode 100644
--- /dev/null
+++ b/Data/IP/Internal.hs
@@ -0,0 +1,7 @@
+module Data.IP.Internal ( IPv4(..)
+                        , IPv6(..)
+                        , AddrRange(..)
+                        ) where
+
+import Data.IP.Addr
+import Data.IP.Range
diff --git a/Data/IP/RouteTable/Internal.hs b/Data/IP/RouteTable/Internal.hs
--- a/Data/IP/RouteTable/Internal.hs
+++ b/Data/IP/RouteTable/Internal.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
 {-|
   IP routing table is a tree of 'AddrRange'
   to search one of them on the longest
@@ -7,7 +9,9 @@
 -}
 module Data.IP.RouteTable.Internal where
 
+#if __GLASGOW_HASKELL__ < 709
 import Control.Applicative ((<$>),(<*>),pure)
+#endif
 import Control.Monad
 import Data.Bits
 import Data.Foldable (Foldable(..))
diff --git a/iproute.cabal b/iproute.cabal
--- a/iproute.cabal
+++ b/iproute.cabal
@@ -1,5 +1,5 @@
 Name:                   iproute
-Version:                1.4.0
+Version:                1.5.0
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
@@ -19,6 +19,7 @@
   Default-Language:     Haskell2010
   GHC-Options:          -Wall
   Exposed-Modules:      Data.IP
+                        Data.IP.Internal
                         Data.IP.RouteTable
   Other-Modules:        Data.IP.Addr
                         Data.IP.Mask
diff --git a/test/IPSpec.hs b/test/IPSpec.hs
--- a/test/IPSpec.hs
+++ b/test/IPSpec.hs
@@ -1,9 +1,12 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 
 module IPSpec where
 
+#if __GLASGOW_HASKELL__ < 709
 import Control.Applicative
+#endif
 import Data.IP
 import Safe (readMay)
 import Test.Hspec
diff --git a/test/RouteTableSpec.hs b/test/RouteTableSpec.hs
--- a/test/RouteTableSpec.hs
+++ b/test/RouteTableSpec.hs
@@ -1,9 +1,12 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 
 module RouteTableSpec where
 
+#if __GLASGOW_HASKELL__ < 709
 import Control.Applicative
+#endif
 import Control.Monad
 import Data.IP
 import Data.IP.RouteTable.Internal
