diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 <!-- -*- Markdown -*- -->
 
+## 0.11.4.0
+
+- add xxxNoPH effect APIs of arrow-interface.
+
 ## 0.11.3.0
 
 - add some overloaded projection instances for tuple types.
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.11.3.0
+version:             0.11.4.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/Arrow.hs b/src/Database/Relational/Arrow.hs
--- a/src/Database/Relational/Arrow.hs
+++ b/src/Database/Relational/Arrow.hs
@@ -47,9 +47,10 @@
 
   assign,
 
-  update', update,
-  insertValue', insertValue,
-  delete', delete,
+  update', update, updateNoPH,
+  updateAllColumn', updateAllColumn, updateAllColumnNoPH,
+  insertValue', insertValue, insertValueNoPH,
+  delete', delete, deleteNoPH,
 
   QueryA,
 
@@ -81,9 +82,10 @@
    relation, relation', aggregateRelation, aggregateRelation', uniqueRelation',
    groupBy', key, key', set, bkey, rollup, cube, groupingSets,
    orderBy', orderBy, asc, desc, partitionBy, over,
-   update', update, derivedUpdate', derivedUpdate,
-   insertValue', insertValue, derivedInsertValue', derivedInsertValue,
-   delete', delete, derivedDelete', derivedDelete,
+   update', update, updateNoPH, derivedUpdate', derivedUpdate,
+   updateAllColumn', updateAllColumn, updateAllColumnNoPH,
+   insertValue', insertValue, insertValueNoPH, derivedInsertValue', derivedInsertValue,
+   delete', delete, deleteNoPH, derivedDelete', derivedDelete,
    QuerySimple, QueryAggregate, QueryUnique, Window, Register)
 import qualified Database.Relational as Monadic
 import qualified Database.Relational.Monad.Trans.Aggregating as Monadic
@@ -421,68 +423,101 @@
        -> Assignings r m (Record Flat v) ()
 assign t = queryA (`Monadic.assignTo` t)
 
--- | Same as 'Monadic.derivedUpdate''.
+-- | Same as 'Monadic.update''.
 --   Make 'Update' from assigning statement arrow using configuration.
 update' :: TableDerivable r => Config -> AssignStatement r (PlaceHolders p) -> Update p
 update' config = Monadic.update' config . runQueryA
 
--- | Same as 'Monadic.derivedUpdate'.
+-- | Same as 'Monadic.update'.
 --   Make 'Update' from assigning statement arrow.
 update :: TableDerivable r => AssignStatement r (PlaceHolders p) -> Update p
 update = Monadic.update . runQueryA
 
--- | Same as 'Monadic.derivedInsertValue''.
+-- | Same as 'Monadic.updateNoPH'.
+--   Make 'Update' from assigning statement arrow.
+updateNoPH :: TableDerivable r => AssignStatement r () -> Update ()
+updateNoPH = Monadic.updateNoPH . runQueryA
+
+-- | Same as 'Monadic.updateAllColumn''.
+--   Make 'Update' from restrected statement arrow.
+updateAllColumn' :: (PersistableWidth r, TableDerivable r)
+                 => Config
+                 -> RestrictedStatement r (PlaceHolders p)
+                 -> Update (r, p)
+updateAllColumn' config = Monadic.updateAllColumn' config . runQueryA
+
+-- | Same as 'Monadic.updateAllColumn'.
+--   Make 'Update' from restrected statement arrow.
+updateAllColumn :: (PersistableWidth r, TableDerivable r)
+                => RestrictedStatement r (PlaceHolders p)
+                -> Update (r, p)
+updateAllColumn = Monadic.updateAllColumn . runQueryA
+
+-- | Same as 'Monadic.updateAllColumnNoPH'.
+--   Make 'Update' from restrected statement arrow.
+updateAllColumnNoPH :: (PersistableWidth r, TableDerivable r)
+                    => RestrictedStatement r ()
+                    -> Update r
+updateAllColumnNoPH = Monadic.updateAllColumnNoPH . runQueryA
+
+-- | Same as 'Monadic.insertValue''.
 --   Make 'Insert' from register arrow using configuration.
 insertValue' :: TableDerivable r => Config -> Register r (PlaceHolders p) -> Insert p
 insertValue' config = Monadic.insertValue' config . ($ ()) . runQueryA
 
--- | Same as 'Monadic.derivedInsertValue'.
+-- | Same as 'Monadic.insertValue'.
 --   Make 'Insert' from register arrow.
 insertValue :: TableDerivable r => Register r (PlaceHolders p) -> Insert p
 insertValue = Monadic.insertValue . ($ ()) . runQueryA
 
--- | Same as 'Monadic.derivedDelete''.
+-- | Same as 'Monadic.insertValueNoPH'.
+--   Make 'Insert' from register arrow.
+insertValueNoPH :: TableDerivable r => Register r () -> Insert ()
+insertValueNoPH = Monadic.insertValueNoPH . ($ ()) . runQueryA
+
+
+-- | Same as 'Monadic.delete''.
 --   Make 'Update' from restrict statement arrow using configuration.
 delete' :: TableDerivable r => Config -> RestrictedStatement r (PlaceHolders p) -> Delete p
 delete' config = Monadic.delete' config . runQueryA
 
--- | Same as 'Monadic.derivedDelete'.
+-- | Same as 'Monadic.delete'.
 --   Make 'Update' from restrict statement arrow.
 delete :: TableDerivable r => RestrictedStatement r (PlaceHolders p) -> Delete p
 delete = Monadic.delete . runQueryA
 
+-- | Same as 'Monadic.deleteNoPH'.
+--   Make 'Update' from restrict statement arrow.
+deleteNoPH :: TableDerivable r => RestrictedStatement r () -> Delete ()
+deleteNoPH = Monadic.deleteNoPH . runQueryA
+
 {-# DEPRECATED derivedUpdate' "use `update'` instead of this." #-}
--- | Same as 'Monadic.derivedUpdate''.
+-- | Same as 'Monadic.update''.
 --   Make 'Update' from assigning statement arrow using configuration.
 derivedUpdate' :: TableDerivable r => Config -> AssignStatement r (PlaceHolders p) -> Update p
 derivedUpdate' = update'
 
 {-# DEPRECATED derivedUpdate "use `update` instead of this." #-}
--- | Same as 'Monadic.derivedUpdate'.
---   Make 'Update' from assigning statement arrow.
+-- | Deprecated.
 derivedUpdate :: TableDerivable r => AssignStatement r (PlaceHolders p) -> Update p
 derivedUpdate = update
 
 {-# DEPRECATED derivedInsertValue' "use `insertValue'` instead of this." #-}
--- | Same as 'Monadic.derivedInsertValue''.
---   Make 'Insert' from register arrow using configuration.
+-- | Deprecated.
 derivedInsertValue' :: TableDerivable r => Config -> Register r (PlaceHolders p) -> Insert p
 derivedInsertValue' = insertValue'
 
 {-# DEPRECATED derivedInsertValue "use `insertValue` instead of this." #-}
--- | Same as 'Monadic.derivedInsertValue'.
---   Make 'Insert' from register arrow.
+-- | Deprecated.
 derivedInsertValue :: TableDerivable r => Register r (PlaceHolders p) -> Insert p
 derivedInsertValue = insertValue
 
 {-# DEPRECATED derivedDelete' "use `derivedDelete'` instead of this." #-}
--- | Same as 'Monadic.derivedDelete''.
---   Make 'Update' from restrict statement arrow using configuration.
+-- | Deprecated.
 derivedDelete' :: TableDerivable r => Config -> RestrictedStatement r (PlaceHolders p) -> Delete p
 derivedDelete' = delete'
 
 {-# DEPRECATED derivedDelete "use `derivedDelete` instead of this." #-}
--- | Same as 'Monadic.derivedDelete'.
---   Make 'Update' from restrict statement arrow.
+-- | Deprecated.
 derivedDelete :: TableDerivable r => RestrictedStatement r (PlaceHolders p) -> Delete p
 derivedDelete = delete
diff --git a/src/Database/Relational/Effect.hs b/src/Database/Relational/Effect.hs
--- a/src/Database/Relational/Effect.hs
+++ b/src/Database/Relational/Effect.hs
@@ -48,8 +48,7 @@
 import qualified Database.Relational.Record as Record
 import Database.Relational.ProjectableClass (ShowConstantTermsSQL)
 import Database.Relational.Projectable
-  (PlaceHolders, unitPlaceHolder,
-   pwPlaceholder, placeholder, (><), value, )
+  (PlaceHolders, unitPH, pwPlaceholder, placeholder, (><), value, )
 import Database.Relational.Monad.Trans.Assigning (assignings, (<-#))
 import Database.Relational.Monad.Restrict (RestrictedStatement)
 import qualified Database.Relational.Monad.Restrict as Restrict
@@ -64,7 +63,7 @@
 
 -- | Finalize 'Restrict' monad and generate 'Restriction'.
 restriction :: RestrictedStatement r () -> Restriction () r
-restriction = Restriction . ((>> return unitPlaceHolder) .)
+restriction = Restriction . ((>> return unitPH) .)
 
 -- | Finalize 'Restrict' monad and generate 'Restriction' with place-holder parameter 'p'
 restriction' :: RestrictedStatement r (PlaceHolders p) -> Restriction p r
@@ -90,7 +89,7 @@
 -- | Finalize 'Target' monad and generate 'UpdateTarget'.
 updateTarget :: AssignStatement r ()
              -> UpdateTarget () r
-updateTarget =  UpdateTarget . ((>> return unitPlaceHolder) .)
+updateTarget =  UpdateTarget . ((>> return unitPH) .)
 
 -- | Finalize 'Target' monad and generate 'UpdateTarget' with place-holder parameter 'p'.
 updateTarget' :: AssignStatement r (PlaceHolders p)
@@ -145,7 +144,7 @@
 -- | Finalize 'Register' monad and generate 'InsertTarget'.
 insertTarget :: Register r ()
              -> InsertTarget () r
-insertTarget =  InsertTarget . (>> return unitPlaceHolder)
+insertTarget =  InsertTarget . (>> return unitPH)
 
 -- | Finalize 'Target' monad and generate 'UpdateTarget' with place-holder parameter 'p'.
 insertTarget' :: Register r (PlaceHolders p)
diff --git a/src/Database/Relational/OverloadedInstances.hs b/src/Database/Relational/OverloadedInstances.hs
--- a/src/Database/Relational/OverloadedInstances.hs
+++ b/src/Database/Relational/OverloadedInstances.hs
@@ -21,12 +21,7 @@
 
 import Control.Applicative ((<$>))
 #if __GLASGOW_HASKELL__ >= 800
-import Database.Record.Persistable
-  (PersistableWidth, persistableWidth,
-   PersistableRecordWidth, runPersistableRecordWidth)
-
-import Database.Relational.Pi.Unsafe (definePi)
-import Database.Relational.OverloadedProjection (HasProjection (projection))
+import Database.Relational.OverloadedProjection (projection)
 #endif
 import Database.Relational.InternalTH.Overloaded (tupleProjection)
 
diff --git a/src/Database/Relational/Sequence.hs b/src/Database/Relational/Sequence.hs
--- a/src/Database/Relational/Sequence.hs
+++ b/src/Database/Relational/Sequence.hs
@@ -41,7 +41,7 @@
 import Database.Relational.Pi (Pi)
 import Database.Relational.Constraint
   (HasConstraintKey (..), Key, Primary, projectionKey)
-import Database.Relational.Projectable ((.<=.), value, unitPlaceHolder, (!))
+import Database.Relational.Projectable ((.<=.), value, unitPH, (!))
 import Database.Relational.ProjectableClass (ShowConstantTermsSQL)
 import Database.Relational.Relation (tableOf)
 import qualified Database.Relational.Relation as Relation
@@ -144,7 +144,7 @@
   let iv = value i
   seqKey seqt <-# iv
   wheres $ proj ! seqKey seqt .<=. iv -- fool proof
-  return unitPlaceHolder
+  return unitPH
 
 -- | Update statement for sequence table
 updateNumber :: (PersistableWidth s, Integral i, ShowConstantTermsSQL i)
diff --git a/src/Database/Relational/Type.hs b/src/Database/Relational/Type.hs
--- a/src/Database/Relational/Type.hs
+++ b/src/Database/Relational/Type.hs
@@ -212,9 +212,9 @@
 -- | Make typed 'Update' from 'Config', derived table and 'AssignStatement'.
 --   Update target is all column.
 updateAllColumn' :: (PersistableWidth r, TableDerivable r)
-                        => Config
-                        -> RestrictedStatement r (PlaceHolders p)
-                        -> Update (r, p)
+                 => Config
+                 -> RestrictedStatement r (PlaceHolders p)
+                 -> Update (r, p)
 updateAllColumn' config = typedUpdateAllColumn' config derivedTable .restriction'
 
 {-# DEPRECATED derivedUpdateAllColumn' "use `updateAllColumn'` instead of this." #-}
diff --git a/test/sqlsEq.hs b/test/sqlsEq.hs
--- a/test/sqlsEq.hs
+++ b/test/sqlsEq.hs
@@ -75,9 +75,8 @@
   return $ a ! intA0'
 
 assignX :: Update ()
-assignX = update $ \_proj -> do
+assignX = updateNoPH $ \_proj ->
   intA0' <-# value (0 :: Int32)
-  return unitPlaceHolder
 
 registerX :: Insert (String, Maybe String)
 registerX = insertValue $ do
@@ -634,15 +633,13 @@
 updateKeyX =  primaryUpdate tableOfSetA
 
 updateX :: Update ()
-updateX =  update $ \proj -> do
+updateX =  updateNoPH $ \proj -> do
   strA2' <-# value "X"
   wheres $ proj ! strA1' .=. value "A"
-  return unitPlaceHolder
 
 deleteX :: Delete ()
-deleteX =  delete $ \proj -> do
+deleteX =  deleteNoPH $ \proj ->
   wheres $ proj ! strA1' .=. value "A"
-  return unitPlaceHolder
 
 effs :: [Test]
 effs =
@@ -665,42 +662,38 @@
   ]
 
 updateExistsX :: Update ()
-updateExistsX = update $ \proj -> do
+updateExistsX = updateNoPH $ \proj -> do
   strA2' <-# value "X"
   wheres . exists
     =<< (queryList . relation $ do
             b <- query setB
             wheres $ b ! intB0' .=. proj ! intA0'
             return b)
-  return unitPlaceHolder
 
 updateScalarX :: Update ()
-updateScalarX = update $ \proj -> do
+updateScalarX = updateNoPH $ \proj -> do
   strA2' <-# value "X"
   sb <- queryScalar . unsafeUnique . relation $ do
     b <- query setB
     wheres $ b ! intB0' .=. value 0
     return $ b ! intB0'
   wheres $ just (proj ! intA0') .=. sb
-  return unitPlaceHolder
 
 deleteExistsX :: Delete ()
-deleteExistsX =  delete $ \proj -> do
+deleteExistsX =  deleteNoPH $ \proj ->
   wheres . exists
     =<< (queryList . relation $ do
             b <- query setB
             wheres $ b ! intB0' .=. proj ! intA0'
             return b)
-  return unitPlaceHolder
 
 deleteScalarX :: Delete ()
-deleteScalarX = delete $ \proj -> do
+deleteScalarX = deleteNoPH $ \proj -> do
   sb <- queryScalar . unsafeUnique . relation $ do
     b <- query setB
     wheres $ b ! intB0' .=. value 0
     return $ b ! intB0'
   wheres $ just (proj ! intA0') .=. sb
-  return unitPlaceHolder
 
 correlated :: [Test]
 correlated =
diff --git a/test/sqlsEqArrow.hs b/test/sqlsEqArrow.hs
--- a/test/sqlsEqArrow.hs
+++ b/test/sqlsEqArrow.hs
@@ -75,9 +75,8 @@
   returnA -< a ! intA0'
 
 assignX :: Update ()
-assignX = update $ proc _proj -> do
+assignX = updateNoPH $ proc _proj ->
   assign intA0' -< value (0 :: Int32)
-  returnA -< unitPlaceHolder
 
 registerX :: Insert (String, Maybe String)
 registerX = insertValue $ proc () -> do
@@ -545,15 +544,13 @@
 updateKeyX =  primaryUpdate tableOfSetA
 
 updateX :: Update ()
-updateX =  update $ proc proj -> do
+updateX =  updateNoPH $ proc proj -> do
   assign strA2' -< value "X"
   wheres -< proj ! strA1' .=. value "A"
-  returnA -< unitPlaceHolder
 
 deleteX :: Delete ()
-deleteX =  delete $ proc proj -> do
+deleteX =  deleteNoPH $ proc proj -> do
   wheres -< proj ! strA1' .=. value "A"
-  returnA -< unitPlaceHolder
 
 effs :: [Test]
 effs =
