diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,8 @@
+### 0.4.1.0
+
+- Handler *renderEDETemplateFromFreeValue* was moved from the example to the
+  module.
+
 ### 0.4.0.0
 
 - Implemented adjustable response timeouts.
diff --git a/NgxExport/Tools/EDE.hs b/NgxExport/Tools/EDE.hs
--- a/NgxExport/Tools/EDE.hs
+++ b/NgxExport/Tools/EDE.hs
@@ -21,6 +21,7 @@
     -- $renderingEDETemplates
                             renderEDETemplate
                            ,renderEDETemplateWith
+                           ,renderEDETemplateFromFreeValue
                            ) where
 
 import           NgxExport
@@ -48,6 +49,7 @@
 import           Data.Aeson (encode, decode, Value (String))
 import           Network.HTTP.Types.URI (urlEncode)
 import           Control.Exception (Exception, throwIO)
+import           Control.Arrow
 import           System.IO.Unsafe
 
 -- $renderingEDETemplates
@@ -55,15 +57,20 @@
 -- This module allows for complex parsing of JSON objects with [EDE templating
 -- language](http://hackage.haskell.org/package/ede/docs/Text-EDE.html). In
 -- terms of module "NgxExport.Tools", it exports a /single-shot/ service
--- __/compileEDETemplates/__ to configure the list of templates parameterized
--- by a simple key, and an asynchronous variable handler __/renderEDETemplate/__
--- for parsing POSTed JSON objects and substitution of extracted data in the
--- provided EDE template.
+-- __/compileEDETemplates/__ to configure a list of templates parameterized by
+-- a simple key, and two variable handlers __/renderEDETemplate/__ and
+-- __/renderEDETemplateFromFreeValue/__ for parsing JSON objects and
+-- substitution of extracted data into provided EDE templates. The former
+-- handler is /asynchronous/ and suitable for parsing JSON objects POSTed in a
+-- request body, while the latter is /synchronous/ and can parse JSON objects
+-- contained in Nginx variables.
 --
 -- Below is a simple example.
 --
 -- ==== File /test_tools_extra_ede.hs/
 -- @
+-- {-\# OPTIONS_GHC -Wno-unused-imports \#-}
+--
 -- {-\# LANGUAGE TemplateHaskell \#-}
 --
 -- module TestToolsExtraEDE where
@@ -72,26 +79,21 @@
 -- import           NgxExport.Tools.EDE
 --
 -- import           Data.ByteString (ByteString)
--- import qualified Data.ByteString.Char8 as C8
 -- import qualified Data.ByteString.Lazy as L
 -- import qualified Network.HTTP.Types.URI as URI
--- import           Control.Arrow
 --
--- renderEDETemplateFromFreeValue :: ByteString -> IO L.ByteString
--- __/renderEDETemplateFromFreeValue/__ = uncurry (flip renderEDETemplate) .
---     second (L.fromStrict . C8.tail) . C8.break (== \'|\')
---
--- 'ngxExportIOYY' \'renderEDETemplateFromFreeValue
---
 -- urlDecode :: ByteString -> L.ByteString
 -- urlDecode = L.fromStrict . URI.urlDecode False
 --
 -- 'ngxExportYY' \'urlDecode
 -- @
 --
--- Besides the two handlers imported from the EDE module, two additional
--- handlers were defined here: /renderEDETemplateFromFreeValue/ and /urlDecode/.
--- We are going to use them for parsing JSON values from HTTP cookies.
+-- We are going to use /urlDecode/ to decode JSON  values contained in HTTP
+-- cookies. Notice that we are not using any Haskell declarations from module
+-- /NgxExport.Tools.EDE/ while still need to import this to access the three
+-- handlers from the Nginx configuration. This situation is quite valid though
+-- not usual to /ghc/, and to make it keep silence, pragma
+-- /OPTIONS_GHC -Wno-unused-imports/ was added on the top of the file.
 --
 -- ==== File /nginx.conf/
 -- @
@@ -175,7 +177,9 @@
 --
 -- So, basically, we used /renderEDETemplate/ to decompose POSTed JSON objects
 -- and then /rewrite/ requests to other locations where extracted fields were
--- encoded inside the location's URL path.
+-- encoded inside the location's URL path. Handler
+-- /renderEDETemplateFromFreeValue/ in /location \/cookie/ does the same but
+-- reads JSON objects from HTTP cookie /user/.
 --
 -- ==== A simple test
 --
@@ -277,4 +281,17 @@
 #endif
 
 ngxExportAsyncOnReqBody 'renderEDETemplate
+
+-- | Renders an EDE template from a JSON object.
+--
+-- This is the core function of the /renderEDETemplateFromFreeValue/ handler.
+-- Accepts a JSON object attached after the search key and a vertical bar such
+-- as /key|$hs_json/.
+renderEDETemplateFromFreeValue
+    :: ByteString           -- ^ Key to find the EDE template, and JSON object
+    -> IO L.ByteString
+renderEDETemplateFromFreeValue = uncurry (flip renderEDETemplate) .
+    second (L.fromStrict . C8.tail) . C8.break (== '|')
+
+ngxExportIOYY 'renderEDETemplateFromFreeValue
 
diff --git a/NgxExport/Tools/Subrequest.hs b/NgxExport/Tools/Subrequest.hs
--- a/NgxExport/Tools/Subrequest.hs
+++ b/NgxExport/Tools/Subrequest.hs
@@ -438,7 +438,7 @@
 -- argument /$arg_p/. Skipping this makes URI look unparsable
 -- (/http:\/\/127.0.0.1:\//) which leads to the error.
 --
--- > curl -D- 'http://localhost:8010/full/?a=Value&p=8020'
+-- > $ curl -D- 'http://localhost:8010/full/?a=Value&p=8020'
 -- > HTTP/1.1 200 OK
 -- > Server: nginx/1.17.9
 -- > Date: Sat, 04 Apr 2020 12:52:03 GMT
@@ -455,7 +455,7 @@
 --
 -- Let's try another port.
 --
--- > curl -D- 'http://localhost:8010/full/?a=Value&p=8021'
+-- > $ curl -D- 'http://localhost:8010/full/?a=Value&p=8021'
 -- > HTTP/1.1 502 Bad Gateway
 -- > Server: nginx/1.17.9
 -- > Date: Sat, 04 Apr 2020 12:56:02 GMT
@@ -516,11 +516,9 @@
 -- | Extracts a specified header from an encoded response.
 --
 -- Must be used to extract response data encoded by 'makeSubrequestFull' and
--- 'makeSubrequestFullWithRead'.
---
--- Expects that the encoded response data is attached after the name of the
--- header and a vertical bar such as /Header-Name|$hs_body/. The lookup of the
--- header name is case-insensitive.
+-- 'makeSubrequestFullWithRead'. Expects that the encoded response data is
+-- attached after the name of the header and a vertical bar such as
+-- /Header-Name|$hs_body/. The lookup of the header name is case-insensitive.
 --
 -- Exported on the Nginx level by a handler of the same name.
 extractHeaderFromFullResponse :: ByteString -> L.ByteString
diff --git a/ngx-export-tools-extra.cabal b/ngx-export-tools-extra.cabal
--- a/ngx-export-tools-extra.cabal
+++ b/ngx-export-tools-extra.cabal
@@ -1,5 +1,5 @@
 name:                       ngx-export-tools-extra
-version:                    0.4.0.0
+version:                    0.4.1.0
 synopsis:                   More extra tools for Nginx haskell module
 description:                More extra tools for
         <https://github.com/lyokha/nginx-haskell-module Nginx haskell module>.
