diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,16 @@
+## Zip 0.1.4
+
+* Added several simple code examples in `Codec.Archive.Zip`.
+
+* Derived `Typeable`, `Data`, `Generic` for `EntrySelector`.
+
+* Derived `Typeable` for `EntryDescription`.
+
+* Derived `Show`, `Ord`, `Bounded`, `Data`, and `Typeable` for
+  `CompressionMethod`.
+
+* Derived `Read`, `Ord`, `Typeable`, and `Data` for `ArchiveDescription`.
+
 ## Zip 0.1.3
 
 * Improved speed of detection of invalid archives.
diff --git a/Codec/Archive/Zip.hs b/Codec/Archive/Zip.hs
--- a/Codec/Archive/Zip.hs
+++ b/Codec/Archive/Zip.hs
@@ -31,6 +31,50 @@
 -- actions are performed automatically when you leave the realm of
 -- 'ZipArchive' monad. If, however, you ever need to force update, 'commit'
 -- function is your friend. There are even “undo” functions, by the way.
+--
+-- An example of a program that prints list of archive entries:
+--
+-- > import Codec.Archive.Zip
+-- > import Path.IO (resolveFile')
+-- > import System.Environment (getArgs)
+-- > import qualified Data.Map as M
+-- >
+-- > main :: IO ()
+-- > main = do
+-- >   [fp]    <- getArgs
+-- >   path    <- resolveFile' fp
+-- >   entries <- withArchive path (M.keys <$> getEntries)
+-- >   mapM_ print entries
+--
+-- Create a Zip archive with a Hello World file:
+--
+-- > import Codec.Archive.Zip
+-- > import Path (parseRelFile)
+-- > import Path.IO (resolveFile')
+-- > import System.Environment (getArgs)
+-- >
+-- > main :: IO ()
+-- > main = do
+-- >   [fp]    <- getArgs
+-- >   path    <- resolveFile' fp
+-- >   s       <- parseRelFile "hello-world.txt" >>= mkEntrySelector
+-- >   createArchive path (addEntry Store "Hello, World!" s)
+--
+-- Extract contents of specific file and print it:
+--
+-- > import Codec.Archive.Zip
+-- > import Path (parseRelFile)
+-- > import Path.IO (resolveFile')
+-- > import System.Environment (getArgs)
+-- > import qualified Data.ByteString.Char8 as B
+-- >
+-- > main :: IO ()
+-- > main = do
+-- >   [fp,f]  <- getArgs
+-- >   path    <- resolveFile' fp
+-- >   s       <- parseRelFile f >>= mkEntrySelector
+-- >   bs      <- withArchive path (getEntry s)
+-- >   B.putStrLn bs
 
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 
@@ -249,6 +293,8 @@
 -- | Get entry source.
 --
 -- Throws: 'EntryDoesNotExist'.
+--
+-- @since 0.1.3
 
 getEntrySource
   :: EntrySelector
diff --git a/Codec/Archive/Zip/Type.hs b/Codec/Archive/Zip/Type.hs
--- a/Codec/Archive/Zip/Type.hs
+++ b/Codec/Archive/Zip/Type.hs
@@ -12,6 +12,7 @@
 -- that module instead.
 
 {-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
 
 module Codec.Archive.Zip.Type
   ( -- * Entry selector
@@ -34,6 +35,7 @@
 import Control.Monad.Catch (MonadThrow (..))
 import Data.ByteString (ByteString)
 import Data.CaseInsensitive (CI)
+import Data.Data (Data)
 import Data.List.NonEmpty (NonEmpty)
 import Data.Map (Map)
 import Data.Maybe (mapMaybe, fromJust)
@@ -42,6 +44,7 @@
 import Data.Typeable (Typeable)
 import Data.Version (Version)
 import Data.Word (Word16, Word32)
+import GHC.Generics (Generic)
 import Numeric.Natural
 import Path
 import qualified Data.ByteString         as B
@@ -75,7 +78,7 @@
 newtype EntrySelector = EntrySelector
   { unES :: NonEmpty (CI String)
     -- ^ Path pieces of relative path inside archive
-  } deriving (Eq, Ord)
+  } deriving (Eq, Ord, Typeable, Data, Generic)
 
 instance Show EntrySelector where
   show = show . unEntrySelector
@@ -162,7 +165,7 @@
   , edOffset           :: Natural -- ^ Absolute offset of local file header
   , edComment          :: Maybe Text -- ^ Entry comment
   , edExtraField       :: Map Word16 ByteString -- ^ All extra fields found
-  } deriving Eq
+  } deriving (Eq, Typeable)
 
 -- | Supported compression methods.
 
@@ -170,7 +173,7 @@
   = Store              -- ^ Store file uncompressed
   | Deflate            -- ^ Deflate
   | BZip2              -- ^ Compressed using BZip2 algorithm
-    deriving (Eq, Enum, Read, Show)
+    deriving (Show, Read, Eq, Ord, Enum, Bounded, Data, Typeable)
 
 ----------------------------------------------------------------------------
 -- Archive description
@@ -181,7 +184,7 @@
   { adComment  :: Maybe Text -- ^ Comment of entire archive
   , adCDOffset :: Natural -- ^ Absolute offset of start of central directory
   , adCDSize   :: Natural -- ^ Size of central directory record
-  } deriving (Eq, Show)
+  } deriving (Show, Read, Eq, Ord, Typeable, Data)
 
 ----------------------------------------------------------------------------
 -- Exceptions
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -3,6 +3,7 @@
 [![License BSD3](https://img.shields.io/badge/license-BSD3-brightgreen.svg)](http://opensource.org/licenses/BSD-3-Clause)
 [![Hackage](https://img.shields.io/hackage/v/zip.svg?style=flat)](https://hackage.haskell.org/package/zip)
 [![Stackage Nightly](http://stackage.org/package/zip/badge/nightly)](http://stackage.org/nightly/package/zip)
+[![Stackage LTS](http://stackage.org/package/zip/badge/lts)](http://stackage.org/lts/package/zip)
 [![Build Status](https://travis-ci.org/mrkkrp/zip.svg?branch=master)](https://travis-ci.org/mrkkrp/zip)
 [![Coverage Status](https://coveralls.io/repos/mrkkrp/zip/badge.svg?branch=master&service=github)](https://coveralls.io/github/mrkkrp/zip?branch=master)
 
diff --git a/zip.cabal b/zip.cabal
--- a/zip.cabal
+++ b/zip.cabal
@@ -31,7 +31,7 @@
 -- POSSIBILITY OF SUCH DAMAGE.
 
 name:                 zip
-version:              0.1.3
+version:              0.1.4
 cabal-version:        >= 1.10
 license:              BSD3
 license-file:         LICENSE.md
@@ -43,7 +43,7 @@
 synopsis:             Operations on zip archives
 build-type:           Simple
 description:          Operations on zip archives.
-extra-source-files:   CHANGELOG.md
+extra-doc-files:      CHANGELOG.md
                     , README.md
 
 flag dev
@@ -52,25 +52,25 @@
   default:            False
 
 library
-  build-depends:      base             >= 4.8 && < 5
-                    , bytestring       >= 0.9 && < 0.11
-                    , bzlib-conduit    >= 0.2 && < 0.3
+  build-depends:      base             >= 4.8     && < 5.0
+                    , bytestring       >= 0.9     && < 0.11
+                    , bzlib-conduit    >= 0.2     && < 0.3
                     , case-insensitive >= 1.2.0.2 && < 1.3
-                    , cereal           >= 0.3 && < 0.6
-                    , conduit          >= 1.1 && < 2
-                    , conduit-extra    >= 1.1 && < 2
+                    , cereal           >= 0.3     && < 0.6
+                    , conduit          >= 1.1     && < 2.0
+                    , conduit-extra    >= 1.1     && < 2.0
                     , containers       >= 0.5.6.2 && < 0.6
                     , digest           < 0.1
-                    , exceptions       >= 0.6 && < 0.9
-                    , filepath         >= 1.2 && < 1.5
-                    , mtl              >= 2.0 && < 3
-                    , path             >= 0.5 && < 6
-                    , path-io          >= 1.0.1 && < 2
-                    , plan-b           >= 0.2.0
-                    , resourcet        >= 1.0 && < 2
-                    , text             >= 0.2 && < 1.3
-                    , time             >= 1.4 && < 1.7
-                    , transformers     >= 0.4 && < 0.6
+                    , exceptions       >= 0.6     && < 0.9
+                    , filepath         >= 1.2     && < 1.5
+                    , mtl              >= 2.0     && < 3.0
+                    , path             >= 0.5     && < 0.6
+                    , path-io          >= 1.0.1   && < 2.0
+                    , plan-b           >= 0.2     && < 0.3
+                    , resourcet        >= 1.0     && < 2.0
+                    , text             >= 0.2     && < 1.3
+                    , time             >= 1.4     && < 1.7
+                    , transformers     >= 0.4     && < 0.6
   if !impl(ghc >= 8.0)
     build-depends:    semigroups       >= 0.16
   default-extensions: RecordWildCards
@@ -93,20 +93,20 @@
     ghc-options:      -Wall -Werror
   else
     ghc-options:      -O2 -Wall
-  build-depends:      base             >= 4.8 && < 5
-                    , bytestring       >= 0.9 && < 0.11
-                    , conduit          >= 1.1 && < 2
+  build-depends:      base             >= 4.8     && < 5.0
+                    , bytestring       >= 0.9     && < 0.11
+                    , conduit          >= 1.1     && < 2.0
                     , containers       >= 0.5.6.2 && < 0.6
-                    , exceptions       >= 0.6 && < 0.9
-                    , filepath         >= 1.2 && < 1.5
-                    , QuickCheck       >= 2.4 && < 3
-                    , hspec            >= 2.0 && < 3
-                    , path             >= 0.5 && < 6
-                    , path-io          >= 1.0.1 && < 2
-                    , text             >= 0.2 && < 1.3
-                    , time             >= 1.4 && < 1.7
-                    , transformers     >= 0.4 && < 0.6
-                    , zip              >= 0.1.3
+                    , exceptions       >= 0.6     && < 0.9
+                    , filepath         >= 1.2     && < 1.5
+                    , QuickCheck       >= 2.4     && < 3.0
+                    , hspec            >= 2.0     && < 3.0
+                    , path             >= 0.5     && < 6.0
+                    , path-io          >= 1.0.1   && < 2.0
+                    , text             >= 0.2     && < 1.3
+                    , time             >= 1.4     && < 1.7
+                    , transformers     >= 0.4     && < 0.6
+                    , zip              >= 0.1.4
   default-language:   Haskell2010
 
 benchmark bench
@@ -117,9 +117,9 @@
     ghc-options:      -O2 -Wall -Werror
   else
     ghc-options:      -O2 -Wall
-  build-depends:      base             >= 4.8 && < 5
-                    , criterion        >= 1.0
-                    , zip              >= 0.1.3
+  build-depends:      base             >= 4.8     && < 5.0
+                    , criterion        >= 0.6.2   && < 1.2
+                    , zip              >= 0.1.4
   default-language:   Haskell2010
 
 source-repository head
