diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 <!-- -*- Markdown -*- -->
 
+## 0.7.1.0
+
+- Deprecate redundant type synonyms.
+
 ## 0.7.0.2
 
 - Prepare to drop Expr type and deprecate around it.
diff --git a/relational-query.cabal b/relational-query.cabal
--- a/relational-query.cabal
+++ b/relational-query.cabal
@@ -1,5 +1,5 @@
 name:                relational-query
-version:             0.7.0.2
+version:             0.7.1.0
 synopsis:            Typeful, Modular, Relational, algebraic query engine
 description:         This package contiains typeful relation structure and
                      relational-algebraic query building DSL which can
diff --git a/src/Database/Relational/Query/Arrow.hs b/src/Database/Relational/Query/Arrow.hs
--- a/src/Database/Relational/Query/Arrow.hs
+++ b/src/Database/Relational/Query/Arrow.hs
@@ -58,6 +58,7 @@
 
   Orderings, Window, Assignings,
 
+  AssignStatement, RestrictedStatement,
   UpdateTargetContext, RestrictionContext,
   ) where
 
@@ -124,9 +125,17 @@
 -- | Arrow type corresponding to 'Monadic.Assignings'
 type Assignings r m = QueryA (Monadic.Assignings r m)
 
+-- | Arrow type corresponding to 'Monadic.AssignStatement'
+type AssignStatement r a = Assignings r Restrict (Projection Flat r) a
+
+-- | Arrow type corresponding to 'Monadic.RestrictedStatement'
+type RestrictedStatement r a = QueryA Monadic.Restrict (Projection Flat r) a
+
+{-# DEPRECATED UpdateTargetContext "Expand UpdateTargetContext p r into AssignStatement r (PlaceHolders p)." #-}
 -- | Arrow type corresponding to 'Monadic.UpdateTargetContext'
 type UpdateTargetContext p r = Assignings r Restrict (Projection Flat r) (PlaceHolders p)
 
+{-# DEPRECATED RestrictionContext "Expand RestrictionContext p r into RestrictedStatement r (PlaceHolders p)." #-}
 -- | Arrow type corresponding to 'Monadic.RestrictionContext'
 type RestrictionContext p r = QueryA Monadic.Restrict (Projection Flat r) (PlaceHolders p)
 
@@ -406,20 +415,20 @@
 
 -- | Same as 'Monadic.derivedUpdate''.
 --   Make 'Update' from assigning statement arrow using configuration.
-derivedUpdate' :: TableDerivable r => Config -> UpdateTargetContext p r -> Update p
+derivedUpdate' :: TableDerivable r => Config -> AssignStatement r (PlaceHolders p) -> Update p
 derivedUpdate' config = Monadic.derivedUpdate' config . runQueryA
 
 -- | Same as 'Monadic.derivedUpdate'.
 --   Make 'Update' from assigning statement arrow.
-derivedUpdate :: TableDerivable r => UpdateTargetContext p r -> Update p
+derivedUpdate :: TableDerivable r => AssignStatement r (PlaceHolders p) -> Update p
 derivedUpdate = Monadic.derivedUpdate . runQueryA
 
 -- | Same as 'Monadic.derivedDelete''.
 --   Make 'Update' from restrict statement arrow using configuration.
-derivedDelete' :: TableDerivable r => Config -> RestrictionContext p r -> Delete p
+derivedDelete' :: TableDerivable r => Config -> RestrictedStatement r (PlaceHolders p) -> Delete p
 derivedDelete' config = Monadic.derivedDelete' config . runQueryA
 
 -- | Same as 'Monadic.derivedDelete'.
 --   Make 'Update' from restrict statement arrow.
-derivedDelete :: TableDerivable r => RestrictionContext p r -> Delete p
+derivedDelete :: TableDerivable r => RestrictedStatement r (PlaceHolders p) -> Delete p
 derivedDelete = Monadic.derivedDelete . runQueryA
diff --git a/src/Database/Relational/Query/Effect.hs b/src/Database/Relational/Query/Effect.hs
--- a/src/Database/Relational/Query/Effect.hs
+++ b/src/Database/Relational/Query/Effect.hs
@@ -49,6 +49,7 @@
 -- | Restriction type with place-holder parameter 'p' and projection record type 'r'.
 newtype Restriction p r = Restriction (Projection Flat r -> Restrict ())
 
+{-# DEPRECATED RestrictionContext "Expand RestrictionContext p r into RestrictedStatement r (PlaceHolders p)." #-}
 -- | Not finalized 'Restrict' monad type.
 type RestrictionContext p r = RestrictedStatement r (PlaceHolders p)
 
@@ -77,6 +78,7 @@
 -- | UpdateTarget type with place-holder parameter 'p' and projection record type 'r'.
 newtype UpdateTarget p r = UpdateTarget (AssignStatement r ())
 
+{-# DEPRECATED UpdateTargetContext "Expand UpdateTargetContext p r into AssignStatement r (PlaceHolders p)." #-}
 -- | Not finalized 'Target' monad type.
 type UpdateTargetContext p r = AssignStatement r (PlaceHolders p)
 
diff --git a/src/Database/Relational/Query/Type.hs b/src/Database/Relational/Query/Type.hs
--- a/src/Database/Relational/Query/Type.hs
+++ b/src/Database/Relational/Query/Type.hs
@@ -44,14 +44,16 @@
 
 import Database.Relational.Query.Internal.SQL (showStringSQL)
 import Database.Relational.Query.Monad.BaseType (Relation, sqlFromRelationWith)
+import Database.Relational.Query.Monad.Restrict (RestrictedStatement)
+import Database.Relational.Query.Monad.Assign (AssignStatement)
 import Database.Relational.Query.Relation (tableOf)
 import Database.Relational.Query.Effect
-  (Restriction, RestrictionContext, restriction',
-   UpdateTarget, UpdateTargetContext, updateTarget', liftTargetAllColumn',
+  (Restriction, restriction', UpdateTarget, updateTarget', liftTargetAllColumn',
    sqlWhereFromRestriction, sqlFromUpdateTarget)
 import Database.Relational.Query.Pi (Pi)
 import Database.Relational.Query.Component (Config (chunksInsertSize), defaultConfig)
 import Database.Relational.Query.Table (Table, TableDerivable, derivedTable)
+import Database.Relational.Query.Projectable (PlaceHolders)
 import Database.Relational.Query.SQL
   (QuerySuffix, showsQuerySuffix, insertPrefixSQL, insertSQL, insertSizedChunkSQL,
    updateOtherThanKeySQL, updatePrefixSQL, deletePrefixSQL)
@@ -128,13 +130,13 @@
 targetTable :: TableDerivable r => UpdateTarget p r -> Table r
 targetTable =  const derivedTable
 
--- | Make typed 'Update' from 'Config', derived table and 'UpdateTargetContext'
-derivedUpdate' :: TableDerivable r => Config -> UpdateTargetContext p r -> Update p
+-- | Make typed 'Update' from 'Config', derived table and 'AssignStatement'
+derivedUpdate' :: TableDerivable r => Config -> AssignStatement r (PlaceHolders p) -> Update p
 derivedUpdate' config utc =  typedUpdate' config (targetTable ut) ut  where
   ut = updateTarget' utc
 
--- | Make typed 'Update' from 'defaultConfig', derived table and 'UpdateTargetContext'
-derivedUpdate :: TableDerivable r => UpdateTargetContext p r -> Update p
+-- | Make typed 'Update' from 'defaultConfig', derived table and 'AssignStatement'
+derivedUpdate :: TableDerivable r => AssignStatement r (PlaceHolders p) -> Update p
 derivedUpdate = derivedUpdate' defaultConfig
 
 
@@ -150,7 +152,7 @@
 --   Update target is all column.
 restrictedUpdateAllColumn :: PersistableWidth r
                            => Table r
-                           -> RestrictionContext p r -- ^ 'Restrict' monad context
+                           -> RestrictedStatement r (PlaceHolders p) -- ^ 'Restrict' monad context
                            -> Update (r, p)
 restrictedUpdateAllColumn tbl = typedUpdateAllColumn tbl . restriction'
 
@@ -158,7 +160,7 @@
 --   Update target is all column.
 restrictedUpdateTableAllColumn :: (PersistableWidth r, TableDerivable r)
                                => Relation () r
-                               -> RestrictionContext p r
+                               -> RestrictedStatement r (PlaceHolders p)
                                -> Update (r, p)
 restrictedUpdateTableAllColumn =  restrictedUpdateAllColumn . tableOf
 
@@ -251,12 +253,12 @@
 restrictedTable =  const derivedTable
 
 -- | Make typed 'Delete' from 'Config', derived table and 'RestrictContext'
-derivedDelete' :: TableDerivable r => Config -> RestrictionContext p r -> Delete p
+derivedDelete' :: TableDerivable r => Config -> RestrictedStatement r (PlaceHolders p) -> Delete p
 derivedDelete' config rc = typedDelete' config (restrictedTable rs) rs  where
   rs = restriction' rc
 
 -- | Make typed 'Delete' from 'defaultConfig', derived table and 'RestrictContext'
-derivedDelete :: TableDerivable r => RestrictionContext p r -> Delete p
+derivedDelete :: TableDerivable r => RestrictedStatement r (PlaceHolders p) -> Delete p
 derivedDelete = derivedDelete' defaultConfig
 
 -- | Show delete SQL string
