diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,16 @@
 # Revision history for greskell-websocket
 
+## 0.1.1.0  -- 2018-08-17
+
+### Client module
+
+* Add `drainResults` function.
+
+### Connection module
+
+* Add `drainResponses` function.
+
+
 ## 0.1.0.0  -- 2018-06-21
 
 * First version. Released on an unsuspecting world.
diff --git a/greskell-websocket.cabal b/greskell-websocket.cabal
--- a/greskell-websocket.cabal
+++ b/greskell-websocket.cabal
@@ -1,5 +1,5 @@
 name:                   greskell-websocket
-version:                0.1.0.0
+version:                0.1.1.0
 author:                 Toshio Ito <debug.ito@gmail.com>
 maintainer:             Toshio Ito <debug.ito@gmail.com>
 license:                BSD3
diff --git a/src/Network/Greskell/WebSocket/Client.hs b/src/Network/Greskell/WebSocket/Client.hs
--- a/src/Network/Greskell/WebSocket/Client.hs
+++ b/src/Network/Greskell/WebSocket/Client.hs
@@ -21,6 +21,7 @@
          nextResult,
          nextResultSTM,
          slurpResults,
+         drainResults,
          -- * Exceptions
          SubmitException(..)
        ) where
diff --git a/src/Network/Greskell/WebSocket/Client/Impl.hs b/src/Network/Greskell/WebSocket/Client/Impl.hs
--- a/src/Network/Greskell/WebSocket/Client/Impl.hs
+++ b/src/Network/Greskell/WebSocket/Client/Impl.hs
@@ -38,7 +38,7 @@
 import qualified Network.Greskell.WebSocket.Request.Standard as ReqStd
 import Network.Greskell.WebSocket.Response (ResponseCode, ResponseMessage)
 import qualified Network.Greskell.WebSocket.Response as Res
-import Network.Greskell.WebSocket.Util (slurp)
+import Network.Greskell.WebSocket.Util (slurp, drain)
 
 
 -- | A client that establishes a connection to the Gremlin Server. You
@@ -213,3 +213,11 @@
 -- | Get all remaining results from 'ResultHandle'.
 slurpResults :: ResultHandle v -> IO (Vector v)
 slurpResults h = slurp $ nextResult h
+
+-- | Similar to 'slurpResults', but this function discards the
+-- results. Useful to execute a script whose side-effect is the only
+-- thing you care.
+--
+-- @since 0.1.1.0
+drainResults :: ResultHandle v -> IO ()
+drainResults h = drain $ nextResult h
diff --git a/src/Network/Greskell/WebSocket/Connection.hs b/src/Network/Greskell/WebSocket/Connection.hs
--- a/src/Network/Greskell/WebSocket/Connection.hs
+++ b/src/Network/Greskell/WebSocket/Connection.hs
@@ -20,6 +20,7 @@
          nextResponse,
          nextResponseSTM,
          slurpResponses,
+         drainResponses,
          -- * Exceptions
          GeneralException(..),
          RequestException(..)
diff --git a/src/Network/Greskell/WebSocket/Connection/Impl.hs b/src/Network/Greskell/WebSocket/Connection/Impl.hs
--- a/src/Network/Greskell/WebSocket/Connection/Impl.hs
+++ b/src/Network/Greskell/WebSocket/Connection/Impl.hs
@@ -51,7 +51,7 @@
     ResponseStatus(ResponseStatus, code),
     isTerminating
   )
-import Network.Greskell.WebSocket.Util (slurp)
+import Network.Greskell.WebSocket.Util (slurp, drain)
 
 
 flushTBQueue :: TBQueue a -> STM [a]
@@ -438,4 +438,9 @@
 slurpResponses :: ResponseHandle s -> IO (Vector (ResponseMessage s))
 slurpResponses h = slurp $ nextResponse h
 
-
+-- | Similar to 'slurpResponses', but this function discards the
+-- responses.
+--
+-- @since 0.1.1.0
+drainResponses :: ResponseHandle s -> IO ()
+drainResponses h = drain $ nextResponse h
diff --git a/src/Network/Greskell/WebSocket/Util.hs b/src/Network/Greskell/WebSocket/Util.hs
--- a/src/Network/Greskell/WebSocket/Util.hs
+++ b/src/Network/Greskell/WebSocket/Util.hs
@@ -5,7 +5,8 @@
 --
 -- __Internal module__.
 module Network.Greskell.WebSocket.Util
-       ( slurp
+       ( slurp,
+         drain
        ) where
 
 import Data.Monoid ((<>))
@@ -19,3 +20,12 @@
       case mres of
        Nothing -> return got
        Just res -> go $! (V.snoc got res)
+
+drain :: Monad m => m (Maybe a) -> m ()
+drain act = go
+  where
+    go = do
+      mres <- act
+      case mres of
+       Nothing -> return ()
+       Just _ -> go
