diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,10 @@
 
 ## [Unreleased]
 
+## [0.0.0.20] - 2019-09-06
+### Added
+- `WITH` statement in DSL.
+
 ## [0.0.0.19] - 2019-07-09
 ### Changed
 - Directed relationship in graph get dsl instead of undirected.
diff --git a/hasbolt-extras.cabal b/hasbolt-extras.cabal
--- a/hasbolt-extras.cabal
+++ b/hasbolt-extras.cabal
@@ -1,5 +1,5 @@
 name:           hasbolt-extras
-version:        0.0.0.19
+version:        0.0.0.20
 synopsis:       Extras for hasbolt library
 description:    Extras for hasbolt library
 homepage:       https://github.com/biocad/hasbolt-extras#readme
diff --git a/src/Database/Bolt/Extras/DSL/Internal/Executer.hs b/src/Database/Bolt/Extras/DSL/Internal/Executer.hs
--- a/src/Database/Bolt/Extras/DSL/Internal/Executer.hs
+++ b/src/Database/Bolt/Extras/DSL/Internal/Executer.hs
@@ -30,6 +30,7 @@
 execute (DetachDelete t n)  = executeHelperT "DETACH DELETE " t n
 execute (Remove t n)        = executeHelperT "REMOVE " t n
 execute (Return t n)        = executeHelperT "RETURN " t n
+execute (With t n)          = executeHelperT "WITH " t n
 execute (Text t n)          = tell [t] >> pure n
 
 -- | Helper to translate 'Expr' with something, which can be translated to cypher.
diff --git a/src/Database/Bolt/Extras/DSL/Internal/Language.hs b/src/Database/Bolt/Extras/DSL/Internal/Language.hs
--- a/src/Database/Bolt/Extras/DSL/Internal/Language.hs
+++ b/src/Database/Bolt/Extras/DSL/Internal/Language.hs
@@ -10,6 +10,7 @@
   , detachDeleteF
   , removeF
   , returnF
+  , withF
   , textF
   ) where
 
@@ -67,6 +68,11 @@
 --
 returnF :: [Text] -> Free Expr ()
 returnF txts = liftF (Return txts ())
+
+-- | Prepare 'WITH' query
+--
+withF :: [Text] -> Free Expr ()
+withF txts = liftF (With txts ())
 
 -- | Prepare query with custom text
 --
diff --git a/src/Database/Bolt/Extras/DSL/Internal/Types.hs b/src/Database/Bolt/Extras/DSL/Internal/Types.hs
--- a/src/Database/Bolt/Extras/DSL/Internal/Types.hs
+++ b/src/Database/Bolt/Extras/DSL/Internal/Types.hs
@@ -105,6 +105,7 @@
                | DetachDelete [Text] next     -- ^ DETACH DELETE query
                | Remove [Text] next           -- ^ REMOVE query
                | Return [Text] next           -- ^ RETURN query
+               | With [Text] next             -- ^ WITH query
                | Text Text next               -- ^ free text query
   deriving (Show, Eq, Functor)
 
