diff --git a/relational-record.cabal b/relational-record.cabal
--- a/relational-record.cabal
+++ b/relational-record.cabal
@@ -1,5 +1,5 @@
 name:                relational-record
-version:             0.0.1.0
+version:             0.0.1.1
 synopsis:            Meta package of Relational Record
 description:         Meta package to install Relational Record quickly
 homepage:            http://khibino.github.io/haskell-relational-record/
@@ -13,7 +13,15 @@
 cabal-version:       >=1.10
 
 library
-  build-depends:       relational-query-HDBC
+  exposed-modules:
+                     Database.Relational.Query.Documentation
+
+  build-depends:       base <5
+                     , relational-query
+                     , relational-query-HDBC
+
+  hs-source-dirs:    src
+  ghc-options:       -Wall
 
   default-language:    Haskell2010
 
diff --git a/src/Database/Relational/Query/Documentation.hs b/src/Database/Relational/Query/Documentation.hs
new file mode 100644
--- /dev/null
+++ b/src/Database/Relational/Query/Documentation.hs
@@ -0,0 +1,223 @@
+-- |
+-- Module      : Database.Relational.Query.Documentation
+-- Copyright   : 2014 Kei Hibino
+-- License     : BSD3
+--
+-- Maintainer  : ex8k.hibino@gmail.com
+-- Stability   : experimental
+-- Portability : unknown
+--
+-- This module is documentation module for relational record.
+module Database.Relational.Query.Documentation (
+  -- * Concepts
+  -- $concepts
+
+  -- ** Relational Query Building DSL
+  -- $queryBuildingDSL
+
+  -- *** Monadic Query Context Building
+  -- $monadicContext
+
+  -- **** Monadic Operators
+  -- $monadicOperator
+  query,
+  queryMaybe,
+
+  on,
+  wheres,
+
+  groupBy,
+
+  having,
+
+  -- **** Direct Join Operators
+  -- $directJoin
+  inner, left, right, full,
+  on',
+
+  -- **** Finalize Context
+  -- $finalize
+  relation,
+  aggregateRelation,
+
+  -- *** Projection Operators
+  -- $projectionOperators
+  (.=.), (.<.), (.<=.), (.>.), (.>=.), (.<>.),
+  casesOrElse, case',
+  in', and', or',
+
+  isNothing, isJust, fromMaybe,
+
+  not', exists,
+
+  (.||.),
+  (.+.), (.-.), (./.), (.*.), negate', fromIntegral', showNum,
+
+  -- *** Aggregate and Window Functions
+  -- $aggregateFunctions
+  sum', avg,
+  max', min',
+  every, any', some',
+
+  rank, denseRank, rowNumber, percentRank, cumeDist,
+
+  -- *** Set Operators
+  -- $setOperators
+  union, except, intersect,
+
+  -- *** Maybe Projections
+  -- $maybeProjection
+  (?+?),
+  negateMaybe,
+  sumMaybe,
+
+  -- *** Placeholders
+  -- $placeholder
+  query',
+  left',
+  relation',
+  union',
+
+  -- ** Database Operations
+  -- $databaseOperations
+
+  -- *** Generalized Statement
+  -- $generalizedStmt
+  prepareNoFetch,
+  bind,
+  execute,
+  executeNoFetch,
+
+  -- *** Select
+  -- $select
+  prepareQuery,
+  fetch,
+  runQuery,
+
+  -- *** Insert Values
+  -- $insertValue
+  prepareInsert,
+  runInsert,
+
+  -- *** Insert Select Results
+  -- $insertSelect
+  prepareInsertQuery,
+  runInsertQuery,
+
+  -- *** Update
+  -- $update
+  prepareUpdate,
+  runUpdate,
+
+  -- *** Delete
+  -- $delete
+  prepareDelete,
+  runDelete,
+
+  -- *** Update by Key
+  -- $keyUpdate
+  prepareKeyUpdate,
+  bindKeyUpdate,
+  runKeyUpdate,
+
+  ) where
+
+import Database.Relational.Query
+import Database.HDBC.Record
+
+{- $concepts
+User inferface of Relational Record has main two part of modules.
+
+[@"Database.Relational.Query"@] Relational Query Building DSL
+
+[@"Database.HDBC.Record"@] Database Operation Actions
+ -}
+
+{- $queryBuildingDSL
+Relatoinal Query ("Database.Relational.Query") module
+defines Typed DSL to build complex SQL query.
+ -}
+
+{- $monadicContext
+This DSL accumulates query structures into monadic context.
+ -}
+
+{- $monadicOperator
+Some operators are defined to build query structures in monadic context.
+
+'query' and 'queryMaybe' operators grow query product of monadic context like join operation of SQL.
+'on' operator appends a new condition into recent join product condition.
+
+'groupBy' operator aggregates flat projection value.
+
+'wheres' and 'having' operators appends a new condition into whole query condition.
+'having' only accepts aggregated projection value.
+ -}
+
+{- $directJoin
+Not monadic style join is supported by some direct join operators.
+
+'inner', 'left', 'right', 'full' operators can construct join products directly like SQL.
+'on'' specifies condition of join product.
+ -}
+
+{- $finalize
+Several operators are defined to finalize query monadic context.
+
+'relation' operator finalizes flat (not aggregated) query monadic context,
+and 'aggregateRelation' operator finalizes aggregated query monadic context.
+ -}
+
+{- $projectionOperators
+Some operators are defined to caluculate projections.
+ -}
+
+{- $aggregateFunctions
+Typed aggregate operators are defined.
+Aggregated value types is distinguished with Flat value types.
+ -}
+
+{- $setOperators
+Several operators are defined to manipulate relation set.
+ -}
+
+{- $maybeProjection
+Operators of projection and aggregation are also provided Maybe type versions.
+ -}
+
+{- $placeholder
+Some operators are defined to realize type safe placeholder.
+ -}
+
+
+{- $databaseOperations
+Some actions are defined for database site effects.
+ -}
+
+{- $generalizedStmt
+Actions to manage generalized SQL statements.
+ -}
+
+{- $select
+Actions to manage SELECT statements.
+ -}
+
+{- $insertValue
+Actions to manage INSERT ... VALUES ... statements.
+ -}
+
+{- $insertSelect
+Actions to manage INSERT ... SELECT ... statements.
+ -}
+
+{- $update
+Actions to manage UPDATE statements.
+ -}
+
+{- $delete
+Actions to manage DELETE statements.
+ -}
+
+{- $keyUpdate
+Actions to manage UPDATE statements which updates columns other than specified key of the records selected by specified key.
+ -}
