<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>generate.ss</filename>
    </added>
    <added>
      <filename>web-export.ss</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,7 +1,7 @@
 #lang scheme/base
 
 (require (file &quot;util.scm&quot;)
-         (planet &quot;web.scm&quot; (&quot;soegaard&quot; &quot;web.plt&quot; 2 1))
+         &quot;web-export.ss&quot;
          (file &quot;web-support.scm&quot;)
          (file &quot;settings.scm&quot;))
 </diff>
      <filename>closures.scm</filename>
    </modified>
    <modified>
      <diff>@@ -2,17 +2,18 @@
 
 ;; A PLT Scheme interface to the Facebook API.
 ;; NOT READY FOR USE YET!  Just a preliminary checkin...
+;; (One reason this isn't ready is that you have to hack dherman's json.plt planet lib
+;; to get this to work.)
 
 (require (file &quot;settings.scm&quot;)
          (file &quot;util.scm&quot;)
          &quot;contract-lp.ss&quot;
+         &quot;web-export.ss&quot;
          (file &quot;web-support.scm&quot;)
          &quot;page.scm&quot;
          &quot;form.scm&quot;
          &quot;util.scm&quot;
          &quot;js.scm&quot;
-         (planet &quot;web.scm&quot; (&quot;soegaard&quot; &quot;web.plt&quot; 2 (= 1)))
-         web-server/private/request-structs ; should be ... web-server/http/request-structs
          (only-in (planet &quot;json.ss&quot; (&quot;dherman&quot; &quot;json.plt&quot; 1 (= 1))) (read read-json)))
 
 (provide facebook-fn</diff>
      <filename>facebook.ss</filename>
    </modified>
    <modified>
      <diff>@@ -3,11 +3,11 @@
 (require &quot;time.scm&quot;
          &quot;util.scm&quot;
          &quot;contract-lp.ss&quot;
+         &quot;web-export.ss&quot;
          &quot;web-support.scm&quot;
          &quot;settings.scm&quot;
-         &quot;page.scm&quot;
-         (planet &quot;web.scm&quot; (&quot;soegaard&quot; &quot;web.plt&quot; 2 (= 1)))
-         (planet &quot;uuid-v4.ss&quot; (&quot;zitterbewegung&quot; &quot;uuid-v4.plt&quot; 1 0)))
+         &quot;page.scm&quot;)
+         ; xxx used? (planet &quot;uuid-v4.ss&quot; (&quot;zitterbewegung&quot; &quot;uuid-v4.plt&quot; 1 0)))
 
 (provide ;; atom-feed (via contract)
          ;; atom-item (via contract)</diff>
      <filename>feed.ss</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,6 @@
          (file &quot;web-support.scm&quot;)
          (file &quot;files.scm&quot;)
          &quot;settings.scm&quot;
-         (planet &quot;web.scm&quot; (&quot;soegaard&quot; &quot;web.plt&quot; 2 1))
          (lib &quot;url.ss&quot; &quot;net&quot;))
 
 (provide form</diff>
      <filename>form.scm</filename>
    </modified>
    <modified>
      <diff>@@ -7,34 +7,18 @@
 (require &quot;util.scm&quot;
          (only-in mzlib/file normalize-path))
 
-(provide generate generate-from-path)
+(provide generate-project)
 
-(define PLANET_MAJOR_VERISON 3)
+(define PLANET_MAJOR_VERISON 4)
 (define PLANET_MINOR_VERSION 0)
 
-(define (generate args-vec)
-  (generate-from-args-list (vector-&gt;list args-vec)))
+(define (generate-project cmd-line-args-vec)
+  (match cmd-line-args-vec
+         ((vector project-path)
+          (generate-project-from-path project-path))
+         (else (e &quot;You must provide exactly one argument to generate--a path to a new project directory.&quot;))))
 
-(define (generate-from-path project-path args-vec)
-  (generate-from-args-list (cons-to-end project-path (vector-&gt;list args-vec))))
-
-;; Note: in order for this to work with generate-from-path, you need to make sure that
-;; for every command, the last argument is always the project path.
-(define (generate-from-args-list args)
-  (match args
-         ((list &quot;project&quot; fresh-project-path)
-          (generate-project-dir fresh-project-path))
-         ((list &quot;script&quot; project-path)
-          (generate-script-dir project-path))
-         ((list &quot;scm&quot; project-path)
-          (generate-basic-scm-files project-path))
-         ((list project-path)
-          (e &quot;You need to provide a command to the generate script.&quot;))
-         ((list-rest command rst)
-          (e &quot;Generate command \&quot;~A\&quot; not understood.&quot; command))
-         (else (e &quot;Generate expression \&quot;generate ~A\&quot; not understood.&quot; args))))
-
-(define (generate-project-dir fresh-project-path)
+(define (generate-project-from-path fresh-project-path)
   (if (directory-exists? fresh-project-path)
       (e &quot;The directory ~A already exists.&quot; fresh-project-path)
       (begin (ensure-existence-of-dir! fresh-project-path)
@@ -45,7 +29,8 @@
              (ensure-existence-of-dir! (build-path fresh-project-path &quot;htdocs/js&quot;))
              (ensure-existence-of-dir! (build-path fresh-project-path &quot;htdocs/i&quot;))
              (generate-basic-scm-files fresh-project-path)
-             (generate-script-dir fresh-project-path))))
+             (generate-script-dir fresh-project-path)
+             (generate-htdocs-files fresh-project-path))))
 
 (define (generate-basic-scm-files project-path)
   ;; serve.scm
@@ -58,12 +43,9 @@
    (make-raw &quot;&quot;)
    '(load-server-settings)
    (make-raw &quot;&quot;)
-   '(serve my-app
-           #:listen-ip (setting *LISTEN_IP*)
-           #:port (setting *PORT*)
-           #:htdocs-path '(&quot;htdocs&quot;))
+   '(serve my-app)
    )
-
+  
   ;; app.scm
   (generate-file-with-expressions
    #:dir-must-exist #t
@@ -111,6 +93,12 @@
   
   )
 
+(define (generate-htdocs-files project-path)
+  (ensure-existence-of-dir! project-path #:must-previously-exist #t)
+  (generate-file-with-expressions
+   (build-path project-path &quot;htdocs/page-not-found.html&quot;)
+   (make-raw &quot;&lt;html&gt;&lt;body&gt;Page not found.&lt;/body&gt;&lt;/html&gt;&quot;)))
+
 (define-struct raw (str))
 
 (define (generate-file-with-expressions path-to-file
@@ -134,7 +122,7 @@
           (e &quot;The directory ~A cannot be found.&quot; dir-path))
       (or (directory-exists? dir-path)
           (begin (make-directory dir-path)
-                 (display (format &quot;Created directory ~A.\n&quot; dir-path))))))
+                 (display (format &quot;Created directory ~A\n&quot; dir-path))))))
 
 ;; it's an error if filename in path already exists
 (define (with-output-to-file-in-dir path-to-file thunk
@@ -146,8 +134,3 @@
 (define (expr-for-lp-require filename-rel-to-lib-root)
   `(planet ,filename-rel-to-lib-root (&quot;vegashacker&quot; &quot;leftparen.plt&quot;
                                       ,PLANET_MAJOR_VERISON ,PLANET_MINOR_VERSION)))
-
-;; consumes a (maybe relative) project-path
-;; XXX rid?
-;;(define (absolute-project-path-str project-path)
-;;  (path-&gt;string (normalize-path (build-path project-path))))</diff>
      <filename>generate-lib.scm</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,13 @@
 #lang scheme/base
 
 (require scheme/match
-         (planet &quot;web.scm&quot; (&quot;soegaard&quot; &quot;web.plt&quot; 2 1))
-         (planet &quot;instaservlet.ss&quot; (&quot;untyped&quot; &quot;instaservlet.plt&quot; 1 7))
-         (planet &quot;dispatch.ss&quot; (&quot;untyped&quot; &quot;dispatch.plt&quot; 1 5))
+         (planet untyped/dispatch:1:7/dispatch)
+         web-server/servlet-env
+         web-server/dispatchers/dispatch
+         web-server/configuration/responders
          &quot;util.scm&quot;
          &quot;settings.scm&quot;
+         &quot;web-export.ss&quot;
          &quot;web-support.scm&quot;
          &quot;record.scm&quot;
          &quot;repository.scm&quot;
@@ -22,15 +24,13 @@
          &quot;log.scm&quot;
          &quot;task-queue.scm&quot;
          &quot;feed.ss&quot;
+         &quot;facebook.ss&quot;
          )
 
 (provide
 
  ;; the work of others:
- (except-out (all-from-out (planet &quot;web.scm&quot; (&quot;soegaard&quot; &quot;web.plt&quot; 2 1)))
-             comment? redirect-to) ; we use our own modification of redirect-to
- (all-from-out (planet &quot;dispatch.ss&quot; (&quot;untyped&quot; &quot;dispatch.plt&quot; 1 5)))
- (all-from-out (planet &quot;instaservlet.ss&quot; (&quot;untyped&quot; &quot;instaservlet.plt&quot; 1 7)))
+ (all-from-out (planet untyped/dispatch:1:7/dispatch))
  
  ;; web server
  serve
@@ -200,37 +200,56 @@
  task-inspector-lock
  task-inspector-num-tasks-thunk
 
+ ;; facebook
+ facebook-fn
+ define-facebook-required-login-page
+ facebook-require-login
+ facebook-session-key
+ facebook-error
+ facebook-uid
+ facebook-form
+ facebook-complex-val
+ facebook-create-object
+ facebook-strict-error
  )
 
 (declare-setting *APP_VERSION* 1)
-
+(declare-setting *PAGE_NOT_FOUND_FILE* &quot;page-not-found.html&quot;)
 (declare-setting *CATCH-EXCEPTION?* (lambda (exn) #t))
 (declare-setting *EXCEPTION-&gt;XEXPR* (lambda (exn)
-                                      ((error-display-handler) (exn-message exn) exn)
-                                      &quot;Page not found.&quot;))
-
-;; consumes a web-app; passes its keyword arguments to go! (part of instaservlet)
-(define serve
-  (make-keyword-procedure
-   (lambda (kws kw-vals . reg-args)
-     (match reg-args
-            ((list)
-             (e &quot;The serve function requires you to pass an app as the first argument.&quot;))
-            ((list web-app)
-             (begin
-               (populate-caches)
-               (keyword-apply go!
-                              kws
-                              kw-vals
-                              (list (lambda (req)
-                                       (let ((catch? (setting *CATCH-EXCEPTION?*))
-                                             (err (setting *EXCEPTION-&gt;XEXPR*)))
-                                         (with-handlers ((catch? err))
-                                           (final-prep-of-response
-                                            (handle-closure-in-req
-                                             req
-                                             (dispatch req web-app))))))))))))))
+                                      (if (exn:dispatcher? exn)
+                                          ;; then it really just means that dispatch
+                                          ;; failed to find an appropriate URL match, so we
+                                          ;; need to look for static files:
+                                          (next-dispatcher)
+                                          ;; otherwise, it is an actual error...
+                                          (begin
+                                            ((error-display-handler)
+                                             (exn-message exn) exn)
+                                            &quot;Error on page.&quot;))))
 
+(define (serve web-app)
+  (populate-caches)
+  (server-log &quot;Server is ready at ~A (ctrl-c to stop it).&quot; (setting *WEB_APP_URL*))
+  (serve/servlet #:command-line? #t
+                 #:launch-browser? #f
+                 #:servlet-path &quot;/&quot;
+                 #:server-root-path (build-path &quot;.&quot;)
+                 #:servlet-regexp #rx&quot;&quot;
+                 #:file-not-found-responder
+                 (gen-file-not-found-responder (build-path
+                                                &quot;htdocs&quot;
+                                                (setting *PAGE_NOT_FOUND_FILE*)))
+                 #:listen-ip (setting *LISTEN_IP*)
+                 #:port (setting *PORT*)
+                 (lambda (req)
+                   (let ((catch? (setting *CATCH-EXCEPTION?*))
+                         (err (setting *EXCEPTION-&gt;XEXPR*)))
+                     (with-handlers ((catch? err))
+                       (final-prep-of-response
+                        (handle-closure-in-req req
+                                               (dispatch req web-app))))))))
+                 
 (define-syntax define-app
   (syntax-rules ()
     ((_ app-name</diff>
      <filename>leftparen.scm</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,10 @@
 #lang scheme/base
 
 (require net/url
-         (planet &quot;dispatch.ss&quot; (&quot;untyped&quot; &quot;dispatch.plt&quot; 1 5))
-         (planet &quot;web.scm&quot; (&quot;soegaard&quot; &quot;web.plt&quot; 2 1))
+         (planet untyped/dispatch:1:7/dispatch)
          (planet &quot;digest.ss&quot; (&quot;soegaard&quot; &quot;digest.plt&quot; 1 1))
          &quot;util.scm&quot;
+         &quot;web-export.ss&quot;
          &quot;web-support.scm&quot;
          &quot;session.scm&quot;
          &quot;settings.scm&quot;</diff>
      <filename>page.scm</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;
-&lt;html&gt;&lt;head&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text-html; charset=utf-8&quot; /&gt;&lt;title&gt;LeftParen 0.4 Documentation&lt;/title&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;scribble.css&quot; title=&quot;default&quot; /&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;scribble-common.js&quot;&gt;&lt;/script&gt;&lt;/head&gt;&lt;body&gt;&lt;div class=&quot;tocset&quot;&gt;&lt;div class=&quot;tocview&quot;&gt;&lt;div class=&quot;tocviewlist&quot; style=&quot;margin-bottom: 1em;&quot;&gt;&lt;div class=&quot;tocviewtitle&quot;&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td style=&quot;width: 1em;&quot;&gt;&lt;a href=&quot;javascript:void(0);&quot; title=&quot;Expand/Collapse&quot; class=&quot;tocviewtoggle&quot; onclick=&quot;TocviewToggle(this,&amp;quot;tocview_0&amp;quot;);&quot;&gt;&amp;#9658;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;file:///Users/rob/Documents/git-leftparen/scribblings/leftparen.html&quot; class=&quot;tocviewselflink&quot;&gt;Left&lt;span class=&quot;mywbr&quot;&gt; &lt;/span&gt;Paren 0.4 Documentation&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class=&quot;tocviewsublistonly&quot; style=&quot;display: none;&quot; id=&quot;tocview_0&quot;&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td align=&quot;right&quot;&gt;1&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;file:///Users/rob/Documents/git-leftparen/scribblings/leftparen.html#(part._.Installing_.Left.Paren)&quot; class=&quot;tocviewlink&quot;&gt;Installing Left&lt;span class=&quot;mywbr&quot;&gt; &lt;/span&gt;Paren&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;right&quot;&gt;2&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;file:///Users/rob/Documents/git-leftparen/scribblings/leftparen.html#(part._tutorials)&quot; class=&quot;tocviewlink&quot;&gt;Tutorials&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;right&quot;&gt;3&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;file:///Users/rob/Documents/git-leftparen/scribblings/leftparen.html#(part._.Reference)&quot; class=&quot;tocviewlink&quot;&gt;Reference&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;right&quot;&gt;4&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;file:///Users/rob/Documents/git-leftparen/scribblings/leftparen.html#(part._.About_.Acknowledgements)&quot; class=&quot;tocviewlink&quot;&gt;About/&lt;span class=&quot;mywbr&quot;&gt; &lt;/span&gt;Acknowledgements&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;tocsub&quot;&gt;&lt;table class=&quot;tocsublist&quot; cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Installing_.Left.Paren)&quot; class=&quot;tocsubseclink&quot;&gt;Installing Left&lt;span class=&quot;mywbr&quot;&gt; &lt;/span&gt;Paren&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._tutorials)&quot; class=&quot;tocsubseclink&quot;&gt;Tutorials&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;2.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Hello__.World)&quot; class=&quot;tocsubseclink&quot;&gt;Hello, World&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;2.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Blogerton_the_.Blog)&quot; class=&quot;tocsubseclink&quot;&gt;Blogerton the Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;2.2.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Changes_to_app_scm)&quot; class=&quot;tocsubseclink&quot;&gt;Changes to &lt;span class=&quot;stt&quot;&gt;app.scm&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;2.2.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Changes_to_main_scm)&quot; class=&quot;tocsubseclink&quot;&gt;Changes to &lt;span class=&quot;stt&quot;&gt;main.scm&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;2.2.3&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Launch_.Blogerton)&quot; class=&quot;tocsubseclink&quot;&gt;Launch Blogerton&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Reference)&quot; class=&quot;tocsubseclink&quot;&gt;Reference&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Forms)&quot; class=&quot;tocsubseclink&quot;&gt;Forms&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.1.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Image_uploads)&quot; class=&quot;tocsubseclink&quot;&gt;Image uploads&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Sessions)&quot; class=&quot;tocsubseclink&quot;&gt;Sessions&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.2.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Creating_sessions)&quot; class=&quot;tocsubseclink&quot;&gt;Creating sessions&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.2.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Accessing_sessions)&quot; class=&quot;tocsubseclink&quot;&gt;Accessing sessions&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.3&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Users)&quot; class=&quot;tocsubseclink&quot;&gt;Users&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.4&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Feeds)&quot; class=&quot;tocsubseclink&quot;&gt;Feeds&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;4&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.About_.Acknowledgements)&quot; class=&quot;tocsubseclink&quot;&gt;About/&lt;span class=&quot;mywbr&quot;&gt; &lt;/span&gt;Acknowledgements&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;4.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Contributors)&quot; class=&quot;tocsubseclink&quot;&gt;Contributors&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;maincolumn&quot;&gt;&lt;div class=&quot;main&quot;&gt;&lt;div class=&quot;versionbox&quot;&gt;&lt;span class=&quot;version&quot;&gt;Version: 4.1.0.3&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;navset&quot; style=&quot;margin-bottom: 2em; border-bottom: 2px solid #e0e0c0;&quot;&gt;&lt;span class=&quot;navleft&quot;&gt;&lt;input style=&quot;width: 16em; margin: 0px; padding: 0px; background-color: #eee; color: #888; border: 1px solid #ddd; text-align: center; vertical-align: middle;&quot; type=&quot;text&quot; value=&quot;...search manuals...&quot; title=&quot;Enter a search string to search the manuals&quot; onkeypress=&quot;return DoSearchKey(event, this, &amp;quot;4.1.0.3&amp;quot;, &amp;quot;&amp;quot;);&quot; onfocus=&quot;this.style.color=&amp;quot;black&amp;quot;; this.style.textAlign=&amp;quot;left&amp;quot;; if (this.value == &amp;quot;...search manuals...&amp;quot;) this.value=&amp;quot;&amp;quot;;&quot; onblur=&quot;if (this.value.match(/^ *$/)) { this.style.color=&amp;quot;#888&amp;quot;; this.style.textAlign=&amp;quot;center&amp;quot;; this.value=&amp;quot;...search manuals...&amp;quot;; }&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;h2&gt;&lt;a name=&quot;(part._.Left.Paren_0_4_.Documentation)&quot;&gt;&lt;/a&gt;LeftParen 0.4 Documentation&lt;/h2&gt;&lt;p&gt;Website: &lt;a href=&quot;http://leftparen.com&quot;&gt;http://leftparen.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;LeftParen is a framework for quickly creating web apps.  It runs on
-PLT Scheme v4.1 or greater.  LeftParen is released under an &lt;a href=&quot;http://github.com/vegashacker/leftparen/tree/master/MIT-LICENSE.txt&quot;&gt;MIT License&lt;/a&gt;.  The source is available on &lt;a href=&quot;http://github.com/vegashacker/leftparen/tree/master&quot;&gt;github&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Installing_.Left.Paren)&quot;&gt;&lt;/a&gt;Installing LeftParen&lt;/h3&gt;&lt;p&gt;You&amp;rsquo;ll need PLT Scheme v4.1 or greater installed.&lt;/p&gt;&lt;p&gt;Make sure that &lt;span class=&quot;schemesymbol&quot;&gt;mzscheme&lt;/span&gt; is in your path.  You should be ready
-to go if you can do this:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% mzscheme&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;Welcome to MzScheme v4.1...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;Installing LeftParen is done behind the scenes with a &lt;a href=&quot;http://planet.plt-scheme.org/&quot;&gt;PLaneT&lt;/a&gt; &lt;span class=&quot;schemesymbol&quot;&gt;require&lt;/span&gt;.  See &lt;a href=&quot;file:///Users/rob/Documents/git-leftparen/scribblings/leftparen.html#(part._tutorials)&quot;&gt;Tutorials&lt;/a&gt; for an example of this.  When you
-first issue one of these &lt;span class=&quot;schemesymbol&quot;&gt;require&lt;/span&gt; commands, you&amp;rsquo;ll automatically download the LeftParen files to your local PLaneT cache.  This can sometimes take a few moments, so be prepared to wait a bit.&lt;/p&gt;&lt;h3&gt;2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._tutorials)&quot;&gt;&lt;/a&gt;Tutorials&lt;/h3&gt;&lt;h4&gt;2.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Hello__.World)&quot;&gt;&lt;/a&gt;Hello, World&lt;/h4&gt;&lt;p&gt;We&amp;rsquo;re going to make a project called &lt;span class=&quot;stt&quot;&gt;hello-world&lt;/span&gt;.  Change to the directory that you&amp;rsquo;d like to make the project in.  Then issue&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% mzscheme -e '(require (planet &quot;bootstrap.scm&quot; (&quot;vegashacker&quot; &quot;leftparen.plt&quot; 3 0)))' project hello-world&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;This will create a &lt;span class=&quot;stt&quot;&gt;hello-world&lt;/span&gt; project directory for you.  In this directory you&amp;rsquo;ll find the &lt;span class=&quot;stt&quot;&gt;script&lt;/span&gt; directory, which contains some useful scripts.  All paths are relative to this project directory, so when calling scripts, you always want to be at the project root.&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% cd hello-world&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;We need to make the scripts executable:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% chmod u+x script/*&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;LeftParen has automatically generated everything we need to run our web app &amp;ndash; we just need to start the server (again, you should be at the project root directory):&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% ./script/server&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;Web server started on port 8765&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;Listening on IP address: 127.0.0.1&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;Type stop to stop the server and exit&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;Type restart to restart the server&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;Point your browser to &lt;a href=&quot;http://localhost:8765&quot;&gt;http://localhost:8765&lt;/a&gt; and you should see a familiar greeting:&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;Hello, World!&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;2.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Blogerton_the_.Blog)&quot;&gt;&lt;/a&gt;Blogerton the Blog&lt;/h4&gt;&lt;p&gt;Now let&amp;rsquo;s try implementing the true &quot;hello world&quot; of web apps &amp;ndash; a blog.  First, execute the following commands from the directory in which you want to create your project directory:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% mzscheme -e '(require (planet &quot;bootstrap.scm&quot; (&quot;vegashacker&quot; &quot;leftparen.plt&quot; 3 0)))' project blogerton&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% cd blogerton&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% chmod u+x script/*&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;h5&gt;2.2.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Changes_to_app_scm)&quot;&gt;&lt;/a&gt;Changes to &lt;span class=&quot;stt&quot;&gt;app.scm&lt;/span&gt;&lt;/h5&gt;&lt;p&gt;We need to register a couple of pages in our app.  The &lt;span class=&quot;schemesymbol&quot;&gt;index-page&lt;/span&gt; was already set up for you, but you&amp;rsquo;ll need to add a page to create new posts, and one to view them.  Make the &lt;span class=&quot;schemesymbol&quot;&gt;define-app&lt;/span&gt; call look like this:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-app&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;my-app&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;index-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;create-post-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;/post&quot;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;view-post-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;/view/&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string-arg&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;h5&gt;2.2.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Changes_to_main_scm)&quot;&gt;&lt;/a&gt;Changes to &lt;span class=&quot;stt&quot;&gt;main.scm&lt;/span&gt;&lt;/h5&gt;&lt;p&gt;Now we need to define those pages that we declared in &lt;span class=&quot;stt&quot;&gt;app.scm&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;index-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;req&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;h1&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Blogerton&quot;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemereader&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;web-link&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Create a new post&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;page-url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;create-post-page&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;ul&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemereader&quot;&gt;,@&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;lambda&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemereader&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;paint-blog-post&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;load-where&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;. &lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;blog-post&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:sort-by&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;created-at&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:compare&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;create-post-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;req&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;form&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Title&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Body&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;long-text&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:init&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;. &lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;blog-post&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:on-done&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;lambda&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;redirect-to-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;view-post-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rec-id&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;view-post-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;req&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post-id&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;paint-blog-post&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;load-rec&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post-id&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:ensure&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;. &lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;blog-post&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;paint-blog-post&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;h2&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemereader&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rec-prop&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemereader&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rec-prop&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;h5&gt;2.2.3&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Launch_.Blogerton)&quot;&gt;&lt;/a&gt;Launch Blogerton&lt;/h5&gt;&lt;p&gt;You&amp;rsquo;re ready for launch.  Start the server with&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% ./script/server&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;and you should have a basic blogging app, with persistent data, in 19 lines of code.&lt;/p&gt;&lt;h3&gt;3&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Reference)&quot;&gt;&lt;/a&gt;Reference&lt;/h3&gt;&lt;h4&gt;3.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Forms)&quot;&gt;&lt;/a&gt;Forms&lt;/h4&gt;&lt;p&gt;Most web applications make some use of web forms.  The &lt;span class=&quot;schemesymbol&quot;&gt;form&lt;/span&gt; function lets easily you get and process input from your users.&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;form&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;field-specs&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;xexpr?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;field-specs&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;listof&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;field-spec?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemesymbol&quot;&gt;field-spec?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;symbol?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;field-type?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;argcontract&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemesymbol&quot;&gt;field-type?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;or/c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;long-text&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;number&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;password&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;checkbox&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;radio&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;drop-down&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;You create a form by listing, in order, &quot;field specifications&quot;.  For example, you might want a title field, followed by a description text box, followed by a photo upload field.  Note that the many keyword arguments available to the &lt;span class=&quot;schemesymbol&quot;&gt;form&lt;/span&gt; function aren&amp;rsquo;t documented yet.&lt;/p&gt;&lt;p&gt;Each field spec is of the form &lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;field-name&lt;/span&gt;&lt;span class=&quot;stt&quot;&gt; &lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;stt&quot;&gt; &lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;field-type&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;.  For example, you create a title field, you might use the spec &lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;stt&quot;&gt; &lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Enter a title&quot;&lt;/span&gt;&lt;span class=&quot;stt&quot;&gt; &lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;.  The entire example metioned above might look like this:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;form&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Title&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Description&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;long-text&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;photo&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Your photo&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;h5&gt;3.1.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Image_uploads)&quot;&gt;&lt;/a&gt;Image uploads&lt;/h5&gt;&lt;p&gt;By default, uploaded images are stored in the &lt;span class=&quot;stt&quot;&gt;uploaded-files&lt;/span&gt; directory in your project directory.  You can customize this with the &lt;span class=&quot;schemesymbol&quot;&gt;*PATH_TO_UPLOADED_FILES*&lt;/span&gt; setting.  When images are saved, their original filenames are used with a 5-character code pre-pended to make filenames unique.&lt;/p&gt;&lt;h4&gt;3.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Sessions)&quot;&gt;&lt;/a&gt;Sessions&lt;/h4&gt;&lt;p&gt;A session is an object that allows you to easily store state about individual visitors to your web app.  Sessions are stored on the server as a record with a virtually impossible-to-guess id.  A cookie is left in the user&amp;rsquo;s web browser, which contains a pointer to a particular session id.  These cookies expire one month after creation and, currently, this can&amp;rsquo;t be changed.&lt;/p&gt;&lt;h5&gt;3.2.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Creating_sessions)&quot;&gt;&lt;/a&gt;Creating sessions&lt;/h5&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-session-page&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;page-name&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;request-iden&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session-iden&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;page-args&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schememeta&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schememeta&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;This is an alternate to &lt;span class=&quot;schemesymbol&quot;&gt;define-page&lt;/span&gt;, most commonly used in &lt;span class=&quot;schemesymbol&quot;&gt;main.scm&lt;/span&gt;.  The only difference is that after the request identifier, you must provide a session identifier.  For example, to keep a counter (unique to each user), you could write:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-session-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;foo-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;req&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;sesh&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;session-get-val&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;sesh&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;counter&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;session-put-val!&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;sesh&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;counter&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;number-&amp;gt;string&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;When you define a session page, the session is automatically fetched for you (and created if necessary), and bound to the session identifier you provided.&lt;/p&gt;&lt;h5&gt;3.2.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Accessing_sessions)&quot;&gt;&lt;/a&gt;Accessing sessions&lt;/h5&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;session-get-val&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;[&lt;span class=&quot;schemevariable&quot;&gt;missing-val&lt;/span&gt;]&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;any&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;symbol&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;missing-val&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;session-put-val!&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;symbol&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;any&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;h4&gt;3.3&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Users)&quot;&gt;&lt;/a&gt;Users&lt;/h4&gt;&lt;p&gt;LeftParen provides built-in functionality for dealing with users, including registering users, logging users in and out, and storing persistent data about users.  To get up-and-running quickly, you can use the high-level &lt;span class=&quot;schemesymbol&quot;&gt;welcome-message&lt;/span&gt; function:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;prototype&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;welcome-message&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;[&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:on-success&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;success-fn&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:no-register&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;no-register&lt;/span&gt;]&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&amp;rarr;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemesymbol&quot;&gt;xexpr&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;session?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;success-fn&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;or/c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;user?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;xexpr?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;no-register&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;boolean?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;The function &lt;span class=&quot;schemesymbol&quot;&gt;welcome-message&lt;/span&gt; produces a small area of text and links (commonly found in the top-right area of a web app).  If the user is not currently logged in, login and register links are presented.  If the user is logged in, a message welcoming them is displayed, along with a link to log out.&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;current-user&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;or/c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;user?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;session?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;The function &lt;span class=&quot;schemesymbol&quot;&gt;current-user&lt;/span&gt; returns the current user record, or &lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt; if no user is available in the current session.&lt;/p&gt;&lt;p&gt;As an example, here is the complete page code for a web app that allows users to register, login and logout, and which prints a secret message if the user is logged in:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-session-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;index-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;req&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;sesh&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;welcome-message&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;sesh&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;aif&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;current-user&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;sesh&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;The secret, ~A, is 42.&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rec-prop&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;it&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;username&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;No secret for you.&quot;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;h4&gt;3.4&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Feeds)&quot;&gt;&lt;/a&gt;Feeds&lt;/h4&gt;&lt;p&gt;You can create Atom or RSS feeds in your web app.  A feed in LeftParen is just a page crafted in a paricular way.  The core functions involved are &lt;span class=&quot;schemesymbol&quot;&gt;atom-feed&lt;/span&gt; and &lt;span class=&quot;schemesymbol&quot;&gt;rss-feed&lt;/span&gt;:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;prototype&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-feed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemevariable&quot;&gt;atom-feed-page&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-title&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-updated/epoch-seconds&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;updated-seconds&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:author-name&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;author-name&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;[&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-description&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-description&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-id&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-id&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:related-content-link&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;related-content-link&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:items&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;atom-items&lt;/span&gt;]&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;response/full?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;atom-feed-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;page?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;updated-seconds&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;integer?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;author-name&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-description&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;or/c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-id&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;THE_URL_OF_THE_GIVEN_ATOM_FEED_PAGE&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;related-content-link&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;THE_LINK_TO_YOUR_WEB_APP&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;atom-items&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;list-of&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-item?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;prototype&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rss-feed&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemevariable&quot;&gt;rss-feed-page&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-title&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-description&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-description&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;[&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:related-content-link&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;related-content-link&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:items&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;rss-items&lt;/span&gt;]&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;response/full?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;rss-feed-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;page?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-description&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;related-content-link&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;THE_LINK_TO_YOUR_WEB_APP&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;rss-items&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;list-of&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rss-item?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;The &lt;span class=&quot;schemeparen&quot;&gt;#:items&lt;/span&gt; argument in each of these functions is a list of items constructed with &lt;span class=&quot;schemesymbol&quot;&gt;atom-item&lt;/span&gt; and &lt;span class=&quot;schemesymbol&quot;&gt;rss-item&lt;/span&gt;:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;prototype&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-item&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;title&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;url&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:updated-epoch-seconds&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;updated-seconds&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;[&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:content&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;content&lt;/span&gt;]&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-item?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;updated-seconds&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;integer?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;or/c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;prototype&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rss-item&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;title&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;url&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;[&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:content&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;content&lt;/span&gt;]&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&amp;rarr;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rss-item?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;or/c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;Here&amp;rsquo;s an example Atom feed page:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;article-feed-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;req&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:blank&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#t&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-feed&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;article-feed-page&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;LeftParen blog&quot;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-description&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;On LeftParen...&quot;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-updated/epoch-seconds&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;current-seconds&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:author-name&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;LP staffers&quot;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:items&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;list&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-item&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Status update...&quot;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;http://blog.../50308696&quot;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:updated-epoch-seconds&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;current-seconds&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:content&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;I&amp;#8217;m nearing a...&quot;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-item&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;LeftParen 0.3...&quot;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:updated-epoch-seconds&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;current-seconds&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;http://blog.../51814971&quot;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:content&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Tonight I...&quot;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;Note that while using &lt;span class=&quot;schemesymbol&quot;&gt;current-seconds&lt;/span&gt; for timestamps does satisfy the interface, it&amp;rsquo;s not really appropriate since these times are supposed to indicated freshness of the data.  If basing your feed off of records, you might consider using &lt;span class=&quot;schemesymbol&quot;&gt;created-when&lt;/span&gt;.&lt;/p&gt;&lt;h3&gt;4&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.About_.Acknowledgements)&quot;&gt;&lt;/a&gt;About/Acknowledgements&lt;/h3&gt;&lt;p&gt;LeftParen was written by &lt;a href=&quot;http://robhunter.org&quot;&gt;Rob Hunter&lt;/a&gt;, but it builds heavily on (and, in fact, often directly incorporates) the work of &lt;a href=&quot;http://untyped.com/&quot;&gt;Untyped&lt;/a&gt; (&lt;a href=&quot;http://planet.plt-scheme.org/display.ss?package=instaservlet.plt&amp;amp;owner=untyped&quot;&gt;instaservlet&lt;/a&gt; and &lt;a href=&quot;http://planet.plt-scheme.org/display.ss?package=dispatch.plt&amp;amp;owner=untyped&quot;&gt;dispatch&lt;/a&gt;), &lt;a href=&quot;http://scheme.dk/blog/&quot;&gt;Jens Axel Soegaard&lt;/a&gt; (&lt;a href=&quot;http://planet.plt-scheme.org/display.ss?package=web.plt&amp;amp;owner=soegaard&quot;&gt;web.plt&lt;/a&gt;), and of course, &lt;a href=&quot;http://www.plt-scheme.org/&quot;&gt;PLT Scheme&lt;/a&gt;.&lt;/p&gt;&lt;h4&gt;4.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Contributors)&quot;&gt;&lt;/a&gt;Contributors&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Bill Hager&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Joshua Herman&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;navset&quot; style=&quot;margin-top: 2em; border-top: 2px solid #e0e0c0;&quot;&gt;&lt;span class=&quot;navleft&quot;&gt;&lt;input style=&quot;width: 16em; margin: 0px; padding: 0px; background-color: #eee; color: #888; border: 1px solid #ddd; text-align: center; vertical-align: middle;&quot; type=&quot;text&quot; value=&quot;...search manuals...&quot; title=&quot;Enter a search string to search the manuals&quot; onkeypress=&quot;return DoSearchKey(event, this, &amp;quot;4.1.0.3&amp;quot;, &amp;quot;&amp;quot;);&quot; onfocus=&quot;this.style.color=&amp;quot;black&amp;quot;; this.style.textAlign=&amp;quot;left&amp;quot;; if (this.value == &amp;quot;...search manuals...&amp;quot;) this.value=&amp;quot;&amp;quot;;&quot; onblur=&quot;if (this.value.match(/^ *$/)) { this.style.color=&amp;quot;#888&amp;quot;; this.style.textAlign=&amp;quot;center&amp;quot;; this.value=&amp;quot;...search manuals...&amp;quot;; }&quot; /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;
\ No newline at end of file
+&lt;html&gt;&lt;head&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text-html; charset=utf-8&quot; /&gt;&lt;title&gt;LeftParen 0.5 Documentation&lt;/title&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;scribble.css&quot; title=&quot;default&quot; /&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;scribble-common.js&quot;&gt;&lt;/script&gt;&lt;/head&gt;&lt;body&gt;&lt;div class=&quot;tocset&quot;&gt;&lt;div class=&quot;tocview&quot;&gt;&lt;div class=&quot;tocviewlist&quot; style=&quot;margin-bottom: 1em;&quot;&gt;&lt;div class=&quot;tocviewtitle&quot;&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td style=&quot;width: 1em;&quot;&gt;&lt;a href=&quot;javascript:void(0);&quot; title=&quot;Expand/Collapse&quot; class=&quot;tocviewtoggle&quot; onclick=&quot;TocviewToggle(this,&amp;quot;tocview_0&amp;quot;);&quot;&gt;&amp;#9658;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;file:///Users/rob/Documents/leftparen/scribblings/leftparen.html&quot; class=&quot;tocviewselflink&quot;&gt;Left&lt;span class=&quot;mywbr&quot;&gt; &lt;/span&gt;Paren 0.5 Documentation&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class=&quot;tocviewsublistonly&quot; style=&quot;display: none;&quot; id=&quot;tocview_0&quot;&gt;&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td align=&quot;right&quot;&gt;1&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;file:///Users/rob/Documents/leftparen/scribblings/leftparen.html#(part._.Installing_.Left.Paren)&quot; class=&quot;tocviewlink&quot;&gt;Installing Left&lt;span class=&quot;mywbr&quot;&gt; &lt;/span&gt;Paren&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;right&quot;&gt;2&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;file:///Users/rob/Documents/leftparen/scribblings/leftparen.html#(part._tutorials)&quot; class=&quot;tocviewlink&quot;&gt;Tutorials&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;right&quot;&gt;3&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;file:///Users/rob/Documents/leftparen/scribblings/leftparen.html#(part._.Reference)&quot; class=&quot;tocviewlink&quot;&gt;Reference&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;right&quot;&gt;4&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;file:///Users/rob/Documents/leftparen/scribblings/leftparen.html#(part._.About_.Acknowledgements)&quot; class=&quot;tocviewlink&quot;&gt;About/&lt;span class=&quot;mywbr&quot;&gt; &lt;/span&gt;Acknowledgements&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;tocsub&quot;&gt;&lt;table class=&quot;tocsublist&quot; cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Installing_.Left.Paren)&quot; class=&quot;tocsubseclink&quot;&gt;Installing Left&lt;span class=&quot;mywbr&quot;&gt; &lt;/span&gt;Paren&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._tutorials)&quot; class=&quot;tocsubseclink&quot;&gt;Tutorials&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;2.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Hello__.World)&quot; class=&quot;tocsubseclink&quot;&gt;Hello, World&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;2.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Blogerton_the_.Blog)&quot; class=&quot;tocsubseclink&quot;&gt;Blogerton the Blog&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;2.2.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Changes_to_app_scm)&quot; class=&quot;tocsubseclink&quot;&gt;Changes to &lt;span class=&quot;stt&quot;&gt;app.scm&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;2.2.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Changes_to_main_scm)&quot; class=&quot;tocsubseclink&quot;&gt;Changes to &lt;span class=&quot;stt&quot;&gt;main.scm&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;2.2.3&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Launch_.Blogerton)&quot; class=&quot;tocsubseclink&quot;&gt;Launch Blogerton&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Reference)&quot; class=&quot;tocsubseclink&quot;&gt;Reference&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Forms)&quot; class=&quot;tocsubseclink&quot;&gt;Forms&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.1.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Image_uploads)&quot; class=&quot;tocsubseclink&quot;&gt;Image uploads&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Sessions)&quot; class=&quot;tocsubseclink&quot;&gt;Sessions&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.2.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Creating_sessions)&quot; class=&quot;tocsubseclink&quot;&gt;Creating sessions&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.2.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Accessing_sessions)&quot; class=&quot;tocsubseclink&quot;&gt;Accessing sessions&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.3&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Users)&quot; class=&quot;tocsubseclink&quot;&gt;Users&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;3.4&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Feeds)&quot; class=&quot;tocsubseclink&quot;&gt;Feeds&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;4&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.About_.Acknowledgements)&quot; class=&quot;tocsubseclink&quot;&gt;About/&lt;span class=&quot;mywbr&quot;&gt; &lt;/span&gt;Acknowledgements&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;tocsublinknumber&quot;&gt;4.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;/span&gt;&lt;a href=&quot;#(part._.Code_.Contributors)&quot; class=&quot;tocsubseclink&quot;&gt;Code Contributors&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;maincolumn&quot;&gt;&lt;div class=&quot;main&quot;&gt;&lt;div class=&quot;versionbox&quot;&gt;&lt;span class=&quot;version&quot;&gt;Version: 4.1.3.9&lt;/span&gt;&lt;/div&gt;&lt;h2&gt;&lt;a name=&quot;(part._.Left.Paren_0_5_.Documentation)&quot;&gt;&lt;/a&gt;LeftParen 0.5 Documentation&lt;/h2&gt;&lt;p&gt;Website: &lt;a href=&quot;http://leftparen.com&quot;&gt;http://leftparen.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;LeftParen is a framework for quickly creating web apps.  It runs on
+PLT Scheme v4.1.3 or greater.  LeftParen is released under an &lt;a href=&quot;http://github.com/vegashacker/leftparen/tree/master/MIT-LICENSE.txt&quot;&gt;MIT License&lt;/a&gt;.  The source is available on &lt;a href=&quot;http://github.com/vegashacker/leftparen/tree/master&quot;&gt;github&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Installing_.Left.Paren)&quot;&gt;&lt;/a&gt;Installing LeftParen&lt;/h3&gt;&lt;p&gt;You&amp;rsquo;ll need PLT Scheme v4.1.3 or greater installed.&lt;/p&gt;&lt;p&gt;Make sure that &lt;span class=&quot;schemesymbol&quot;&gt;mzscheme&lt;/span&gt; is in your path.  You should be ready
+to go if you can do this:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% mzscheme&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;Welcome to MzScheme v4.1.3...&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;Installing LeftParen is done behind the scenes with a &lt;a href=&quot;http://planet.plt-scheme.org/&quot;&gt;PLaneT&lt;/a&gt; &lt;span class=&quot;schemesymbol&quot;&gt;require&lt;/span&gt;.  See &lt;a href=&quot;file:///Users/rob/Documents/leftparen/scribblings/leftparen.html#(part._tutorials)&quot;&gt;Tutorials&lt;/a&gt; for examples of this.  When you
+first issue one of these &lt;span class=&quot;schemesymbol&quot;&gt;require&lt;/span&gt; commands, you&amp;rsquo;ll automatically download the LeftParen files to your local PLaneT cache.  This can sometimes take a few moments, so be prepared to wait a bit.&lt;/p&gt;&lt;h3&gt;2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._tutorials)&quot;&gt;&lt;/a&gt;Tutorials&lt;/h3&gt;&lt;h4&gt;2.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Hello__.World)&quot;&gt;&lt;/a&gt;Hello, World&lt;/h4&gt;&lt;p&gt;We&amp;rsquo;re going to make a project called &lt;span class=&quot;stt&quot;&gt;hello-world&lt;/span&gt;.  Change to the directory that you&amp;rsquo;d like to make the project in.  Then issue&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% mzscheme -e '(require (planet vegashacker/leftparen:4:0/generate))' hello-world&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;This will create a &lt;span class=&quot;stt&quot;&gt;hello-world&lt;/span&gt; project directory for you.  In this directory you&amp;rsquo;ll find the &lt;span class=&quot;stt&quot;&gt;script&lt;/span&gt; directory, which contains some useful scripts.  All paths are relative to this project directory, so when calling scripts, you always want to be at the project root.&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% cd hello-world&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;We need to make the scripts executable:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% chmod u+x script/server&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;LeftParen has automatically generated everything we need to run our web app &amp;ndash; we just need to start the server (again, you should be at the project root directory):&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% ./script/server&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;Web server started on port 8765&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;Listening on IP address: 127.0.0.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;Type stop to stop the server and exit&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;Type restart to restart the server&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;Point your browser to &lt;a href=&quot;http://localhost:8765&quot;&gt;http://localhost:8765&lt;/a&gt; and you should see a familiar greeting:&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;stt&quot;&gt;Hello, World!&lt;/span&gt;&lt;/p&gt;&lt;h4&gt;2.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Blogerton_the_.Blog)&quot;&gt;&lt;/a&gt;Blogerton the Blog&lt;/h4&gt;&lt;p&gt;Now let&amp;rsquo;s try implementing the true &quot;hello world&quot; of web apps &amp;ndash; a blog.  First, execute the following commands from the directory in which you want to create your project directory:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% mzscheme -e '(require (planet vegashacker/leftparen:4:0/generate))' blogerton&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% cd blogerton&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% chmod u+x script/server&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;h5&gt;2.2.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Changes_to_app_scm)&quot;&gt;&lt;/a&gt;Changes to &lt;span class=&quot;stt&quot;&gt;app.scm&lt;/span&gt;&lt;/h5&gt;&lt;p&gt;We need to register a couple of pages in our app.  The &lt;span class=&quot;schemesymbol&quot;&gt;index-page&lt;/span&gt; was already set up for you, but you&amp;rsquo;ll need to add a page to create new posts, and one to view them.  Make the &lt;span class=&quot;schemesymbol&quot;&gt;define-app&lt;/span&gt; call look like this:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-app&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;my-app&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;index-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;create-post-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;/post&quot;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;view-post-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;/view/&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string-arg&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;h5&gt;2.2.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Changes_to_main_scm)&quot;&gt;&lt;/a&gt;Changes to &lt;span class=&quot;stt&quot;&gt;main.scm&lt;/span&gt;&lt;/h5&gt;&lt;p&gt;Now we need to define those pages that we declared in &lt;span class=&quot;stt&quot;&gt;app.scm&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;index-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;req&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;h1&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Blogerton&quot;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemereader&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;web-link&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Create a new post&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;page-url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;create-post-page&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;ul&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemereader&quot;&gt;,@&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;lambda&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemereader&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;paint-blog-post&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;load-where&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;. &lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;blog-post&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:sort-by&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;created-at&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:compare&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;create-post-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;req&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;form&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Title&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Body&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;long-text&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:init&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;. &lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;blog-post&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:on-done&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;lambda&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;redirect-to-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;view-post-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rec-id&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;view-post-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;req&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post-id&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;paint-blog-post&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;load-rec&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post-id&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:ensure&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;. &lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;blog-post&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;paint-blog-post&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;h2&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemereader&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rec-prop&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemereader&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rec-prop&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;h5&gt;2.2.3&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Launch_.Blogerton)&quot;&gt;&lt;/a&gt;Launch Blogerton&lt;/h5&gt;&lt;p&gt;You&amp;rsquo;re ready for launch.  Start the server with&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;stt&quot;&gt;&lt;span class=&quot;stt&quot;&gt;% ./script/server&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;and you should have a basic blogging app, with persistent data, in 19 lines of code.&lt;/p&gt;&lt;h3&gt;3&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Reference)&quot;&gt;&lt;/a&gt;Reference&lt;/h3&gt;&lt;h4&gt;3.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Forms)&quot;&gt;&lt;/a&gt;Forms&lt;/h4&gt;&lt;p&gt;Most web applications make some use of web forms.  The &lt;span class=&quot;schemesymbol&quot;&gt;form&lt;/span&gt; function lets easily you get and process input from your users.&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;form&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;field-specs&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;xexpr?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;field-specs&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;listof&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;field-spec?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemesymbol&quot;&gt;field-spec?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;symbol?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;field-type?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;argcontract&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemesymbol&quot;&gt;field-type?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;or/c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;long-text&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;number&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;password&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;checkbox&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;radio&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;drop-down&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;You create a form by listing, in order, &quot;field specifications&quot;.  For example, you might want a title field, followed by a description text box, followed by a photo upload field.  Note that the many keyword arguments available to the &lt;span class=&quot;schemesymbol&quot;&gt;form&lt;/span&gt; function aren&amp;rsquo;t documented yet.&lt;/p&gt;&lt;p&gt;Each field spec is of the form &lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;field-name&lt;/span&gt;&lt;span class=&quot;stt&quot;&gt; &lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;stt&quot;&gt; &lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;field-type&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;.  For example, you create a title field, you might use the spec &lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;stt&quot;&gt; &lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Enter a title&quot;&lt;/span&gt;&lt;span class=&quot;stt&quot;&gt; &lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;.  The entire example metioned above might look like this:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;form&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Title&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Description&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;long-text&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;photo&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Your photo&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;h5&gt;3.1.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Image_uploads)&quot;&gt;&lt;/a&gt;Image uploads&lt;/h5&gt;&lt;p&gt;By default, uploaded images are stored in the &lt;span class=&quot;stt&quot;&gt;uploaded-files&lt;/span&gt; directory in your project directory.  You can customize this with the &lt;span class=&quot;schemesymbol&quot;&gt;*PATH_TO_UPLOADED_FILES*&lt;/span&gt; setting.  When images are saved, their original filenames are used with a 5-character code pre-pended to make filenames unique.&lt;/p&gt;&lt;h4&gt;3.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Sessions)&quot;&gt;&lt;/a&gt;Sessions&lt;/h4&gt;&lt;p&gt;A session is an object that allows you to easily store state about individual visitors to your web app.  Sessions are stored on the server as a record with a virtually impossible-to-guess id.  A cookie is left in the user&amp;rsquo;s web browser, which contains a pointer to a particular session id.  These cookies expire one month after creation and, currently, this can&amp;rsquo;t be changed.&lt;/p&gt;&lt;h5&gt;3.2.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Creating_sessions)&quot;&gt;&lt;/a&gt;Creating sessions&lt;/h5&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-session-page&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;page-name&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;request-iden&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session-iden&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;page-args&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schememeta&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schememeta&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;This is an alternate to &lt;span class=&quot;schemesymbol&quot;&gt;define-page&lt;/span&gt;, most commonly used in &lt;span class=&quot;schemesymbol&quot;&gt;main.scm&lt;/span&gt;.  The only difference is that after the request identifier, you must provide a session identifier.  For example, to keep a counter (unique to each user), you could write:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-session-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;foo-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;req&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;sesh&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;session-get-val&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;sesh&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;counter&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;session-put-val!&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;sesh&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;counter&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;number-&amp;gt;string&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;When you define a session page, the session is automatically fetched for you (and created if necessary), and bound to the session identifier you provided.&lt;/p&gt;&lt;h5&gt;3.2.2&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Accessing_sessions)&quot;&gt;&lt;/a&gt;Accessing sessions&lt;/h5&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;session-get-val&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;[&lt;span class=&quot;schemevariable&quot;&gt;missing-val&lt;/span&gt;]&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;any&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;symbol&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;missing-val&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;session-put-val!&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;symbol&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;any&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;h4&gt;3.3&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Users)&quot;&gt;&lt;/a&gt;Users&lt;/h4&gt;&lt;p&gt;LeftParen provides built-in functionality for dealing with users, including registering users, logging users in and out, and storing persistent data about users.  To get up-and-running quickly, you can use the high-level &lt;span class=&quot;schemesymbol&quot;&gt;welcome-message&lt;/span&gt; function:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;prototype&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;welcome-message&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;[&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:on-success&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;success-fn&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:no-register&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;no-register&lt;/span&gt;]&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&amp;rarr;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemesymbol&quot;&gt;xexpr&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;session?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;success-fn&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;or/c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;user?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;xexpr?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;no-register&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;boolean?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;The function &lt;span class=&quot;schemesymbol&quot;&gt;welcome-message&lt;/span&gt; produces a small area of text and links (commonly found in the top-right area of a web app).  If the user is not currently logged in, login and register links are presented.  If the user is logged in, a message welcoming them is displayed, along with a link to log out.&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;current-user&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;or/c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;user?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;session?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;The function &lt;span class=&quot;schemesymbol&quot;&gt;current-user&lt;/span&gt; returns the current user record, or &lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt; if no user is available in the current session.&lt;/p&gt;&lt;p&gt;As an example, here is the complete page code for a web app that allows users to register, login and logout, and which prints a secret message if the user is logged in:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-session-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;index-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;req&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;sesh&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;welcome-message&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;sesh&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;aif&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;current-user&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;sesh&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;The secret, ~A, is 42.&quot;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rec-prop&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;it&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;username&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;No secret for you.&quot;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;h4&gt;3.4&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Feeds)&quot;&gt;&lt;/a&gt;Feeds&lt;/h4&gt;&lt;p&gt;You can create Atom or RSS feeds in your web app.  A feed in LeftParen is just a page crafted in a paricular way.  The core functions involved are &lt;span class=&quot;schemesymbol&quot;&gt;atom-feed&lt;/span&gt; and &lt;span class=&quot;schemesymbol&quot;&gt;rss-feed&lt;/span&gt;:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;prototype&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-feed&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemevariable&quot;&gt;atom-feed-page&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-title&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-updated/epoch-seconds&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;updated-seconds&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:author-name&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;author-name&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;[&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-description&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-description&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-id&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-id&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:related-content-link&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;related-content-link&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:items&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;atom-items&lt;/span&gt;]&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;response/full?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;atom-feed-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;page?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;updated-seconds&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;integer?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;author-name&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-description&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;or/c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-id&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;THE_URL_OF_THE_GIVEN_ATOM_FEED_PAGE&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;related-content-link&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;THE_LINK_TO_YOUR_WEB_APP&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;atom-items&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;list-of&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-item?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;prototype&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rss-feed&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemevariable&quot;&gt;rss-feed-page&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-title&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-description&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-description&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;[&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:related-content-link&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;related-content-link&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:items&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;rss-items&lt;/span&gt;]&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;response/full?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;rss-feed-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;page?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;feed-description&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;related-content-link&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;THE_LINK_TO_YOUR_WEB_APP&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;rss-items&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;list-of&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rss-item?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;The &lt;span class=&quot;schemeparen&quot;&gt;#:items&lt;/span&gt; argument in each of these functions is a list of items constructed with &lt;span class=&quot;schemesymbol&quot;&gt;atom-item&lt;/span&gt; and &lt;span class=&quot;schemesymbol&quot;&gt;rss-item&lt;/span&gt;:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;prototype&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-item&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;title&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;url&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:updated-epoch-seconds&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;updated-seconds&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;[&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:content&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;content&lt;/span&gt;]&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-item?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;updated-seconds&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;integer?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;or/c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;boxed&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;prototype&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rss-item&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;title&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;url&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;[&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:content&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;content&lt;/span&gt;]&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&amp;rarr;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;schemesymbol&quot;&gt;rss-item?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevariable&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;:&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;or/c&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;string?&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;=&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#f&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;Here&amp;rsquo;s an example Atom feed page:&lt;/p&gt;&lt;p&gt;&lt;table cellspacing=&quot;0&quot; class=&quot;schemeblock&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;define-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;article-feed-page&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;req&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:blank&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;#t&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-feed&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;article-feed-page&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;LeftParen blog&quot;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-description&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;On LeftParen...&quot;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:feed-updated/epoch-seconds&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;current-seconds&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:author-name&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;LP staffers&quot;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:items&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;list&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-item&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Status update...&quot;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;http://blog.../50308696&quot;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:updated-epoch-seconds&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;current-seconds&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:content&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;I&amp;#8217;m nearing a...&quot;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;atom-item&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:title&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;LeftParen 0.3...&quot;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:updated-epoch-seconds&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;schemesymbol&quot;&gt;current-seconds&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:url&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;http://blog.../51814971&quot;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;schemeplain&quot;&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;#:content&lt;/span&gt;&lt;span class=&quot;hspace&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;schemevalue&quot;&gt;&quot;Tonight I...&quot;&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;schemeparen&quot;&gt;)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;Note that while using &lt;span class=&quot;schemesymbol&quot;&gt;current-seconds&lt;/span&gt; for timestamps does satisfy the interface, it&amp;rsquo;s not really appropriate since these times are supposed to indicated freshness of the data.  If basing your feed off of records, you might consider using &lt;span class=&quot;schemesymbol&quot;&gt;created-when&lt;/span&gt;.&lt;/p&gt;&lt;h3&gt;4&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.About_.Acknowledgements)&quot;&gt;&lt;/a&gt;About/Acknowledgements&lt;/h3&gt;&lt;p&gt;LeftParen was written by &lt;a href=&quot;http://robhunter.org&quot;&gt;Rob Hunter&lt;/a&gt;, but it builds heavily on (and, in fact, often directly incorporates) the work of &lt;a href=&quot;http://untyped.com/&quot;&gt;Untyped&lt;/a&gt; (&lt;a href=&quot;http://planet.plt-scheme.org/display.ss?package=dispatch.plt&amp;amp;owner=untyped&quot;&gt;dispatch&lt;/a&gt;), &lt;a href=&quot;http://scheme.dk/blog/&quot;&gt;Jens Axel Soegaard&lt;/a&gt; (&lt;a href=&quot;http://planet.plt-scheme.org/display.ss?package=web.plt&amp;amp;owner=soegaard&quot;&gt;web.plt&lt;/a&gt;), and of course, &lt;a href=&quot;http://www.plt-scheme.org/&quot;&gt;PLT Scheme&lt;/a&gt;.&lt;/p&gt;&lt;h4&gt;4.1&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;a name=&quot;(part._.Code_.Contributors)&quot;&gt;&lt;/a&gt;Code Contributors&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Bill Hager&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Joshua Herman&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;
\ No newline at end of file</diff>
      <filename>scribblings/leftparen.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,27 +1,27 @@
 #lang scribble/doc
 @(require scribble/manual)
 
-@title{LeftParen 0.4 Documentation}
+@title{LeftParen 0.5 Documentation}
 
 Website: @link[&quot;http://leftparen.com&quot;]{http://leftparen.com}
 
 LeftParen is a framework for quickly creating web apps.  It runs on
-PLT Scheme v4.1 or greater.  LeftParen is released under an @link[&quot;http://github.com/vegashacker/leftparen/tree/master/MIT-LICENSE.txt&quot;]{MIT License}.  The source is available on @link[&quot;http://github.com/vegashacker/leftparen/tree/master&quot;]{github}.
+PLT Scheme v4.1.3 or greater.  LeftParen is released under an @link[&quot;http://github.com/vegashacker/leftparen/tree/master/MIT-LICENSE.txt&quot;]{MIT License}.  The source is available on @link[&quot;http://github.com/vegashacker/leftparen/tree/master&quot;]{github}.
 
 @section{Installing LeftParen}
 
-You'll need PLT Scheme v4.1 or greater installed.
+You'll need PLT Scheme v4.1.3 or greater installed.
 
 Make sure that @scheme[mzscheme] is in your path.  You should be ready
 to go if you can do this:
 
 @verbatim{
 % mzscheme
-Welcome to MzScheme v4.1...
+Welcome to MzScheme v4.1.3...
 &gt; 
 }
 
-Installing LeftParen is done behind the scenes with a @link[&quot;http://planet.plt-scheme.org/&quot;]{PLaneT} @scheme[require].  See @secref{tutorials} for an example of this.  When you
+Installing LeftParen is done behind the scenes with a @link[&quot;http://planet.plt-scheme.org/&quot;]{PLaneT} @scheme[require].  See @secref{tutorials} for examples of this.  When you
 first issue one of these @scheme[require] commands, you'll automatically download the LeftParen files to your local PLaneT cache.  This can sometimes take a few moments, so be prepared to wait a bit.
 
 @section[#:tag &quot;tutorials&quot;]{Tutorials}
@@ -30,7 +30,7 @@ first issue one of these @scheme[require] commands, you'll automatically downloa
 
 We're going to make a project called @tt{hello-world}.  Change to the directory that you'd like to make the project in.  Then issue
 
-@verbatim{% mzscheme -e '(require (planet &quot;bootstrap.scm&quot; (&quot;vegashacker&quot; &quot;leftparen.plt&quot; 3 0)))' project hello-world}
+@verbatim{% mzscheme -e '(require (planet vegashacker/leftparen:4:0/generate))' hello-world}
 
 This will create a @tt{hello-world} project directory for you.  In this directory you'll find the @tt{script} directory, which contains some useful scripts.  All paths are relative to this project directory, so when calling scripts, you always want to be at the project root.
 
@@ -38,7 +38,7 @@ This will create a @tt{hello-world} project directory for you.  In this director
 
 We need to make the scripts executable:
 
-@verbatim{% chmod u+x script/*}
+@verbatim{% chmod u+x script/server}
 
 LeftParen has automatically generated everything we need to run our web app---we just need to start the server (again, you should be at the project root directory):
 
@@ -59,9 +59,9 @@ Point your browser to @link[&quot;http://localhost:8765&quot;]{http://localhost:8765} and
 Now let's try implementing the true &quot;hello world&quot; of web apps---a blog.  First, execute the following commands from the directory in which you want to create your project directory:
 
 @verbatim{
-% mzscheme -e '(require (planet &quot;bootstrap.scm&quot; (&quot;vegashacker&quot; &quot;leftparen.plt&quot; 3 0)))' project blogerton
+% mzscheme -e '(require (planet vegashacker/leftparen:4:0/generate))' blogerton
 % cd blogerton
-% chmod u+x script/*
+% chmod u+x script/server
 }
 
 @subsubsection{Changes to @tt{app.scm}}
@@ -241,9 +241,9 @@ Note that while using @scheme[current-seconds] for timestamps does satisfy the i
 
 @section{About/Acknowledgements}
 
-LeftParen was written by @link[&quot;http://robhunter.org&quot;]{Rob Hunter}, but it builds heavily on (and, in fact, often directly incorporates) the work of @link[&quot;http://untyped.com/&quot;]{Untyped} (@link[&quot;http://planet.plt-scheme.org/display.ss?package=instaservlet.plt&amp;owner=untyped&quot;]{instaservlet} and @link[&quot;http://planet.plt-scheme.org/display.ss?package=dispatch.plt&amp;owner=untyped&quot;]{dispatch}), @link[&quot;http://scheme.dk/blog/&quot;]{Jens Axel Soegaard} (@link[&quot;http://planet.plt-scheme.org/display.ss?package=web.plt&amp;owner=soegaard&quot;]{web.plt}), and of course, @link[&quot;http://www.plt-scheme.org/&quot;]{PLT Scheme}.
+LeftParen was written by @link[&quot;http://robhunter.org&quot;]{Rob Hunter}, but it builds heavily on (and, in fact, often directly incorporates) the work of @link[&quot;http://untyped.com/&quot;]{Untyped} (@link[&quot;http://planet.plt-scheme.org/display.ss?package=dispatch.plt&amp;owner=untyped&quot;]{dispatch}), @link[&quot;http://scheme.dk/blog/&quot;]{Jens Axel Soegaard} (@link[&quot;http://planet.plt-scheme.org/display.ss?package=web.plt&amp;owner=soegaard&quot;]{web.plt}), and of course, @link[&quot;http://www.plt-scheme.org/&quot;]{PLT Scheme}.
 
-@subsection{Contributors}
+@subsection{Code Contributors}
 
 @itemize[
 @item{Bill Hager}</diff>
      <filename>scribblings/leftparen.scrbl</filename>
    </modified>
    <modified>
      <diff>@@ -27,11 +27,23 @@
 
 /* ---------------------------------------- */
 
+h2 { /* per-page main title */
+  margin-top: 0;
+}
+
 h3, h4, h5, h6, h7, h8 {
   margin-top: 1.75em;
   margin-bottom: 0.5em;
 }
 
+/* Needed for browsers like Opera, and eventually for HTML 4 conformance.
+   This means that multiple paragraphs in a table element do not have a space
+   between them. */
+table p {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
 /* ---------------------------------------- */
 /* Main */
 
@@ -58,11 +70,21 @@ table td {
 /* ---------------------------------------- */
 /* Navigation */
 
-.navset {
+.navsettop, .navsetbottom {
   background-color: #f0f0e0;
   padding: 0.25em 0 0.25em 0;
 }
 
+.navsettop { 
+   margin-bottom: 1.5em;
+   border-bottom: 2px solid #e0e0c0;
+}
+
+.navsetbottom { 
+   margin-top: 2em;
+   border-top: 2px solid #e0e0c0;
+}
+
 .navleft {
   margin-left: 1ex;
   position: relative;
@@ -79,6 +101,22 @@ table td {
   color: #e0e0e0;
 }
 
+.searchform {
+  display: inline;
+  margin: 0;
+  padding: 0;
+}
+
+.searchbox {
+  width: 16em;
+  margin: 0px;
+  padding: 0px;
+  background-color: #eee;
+  border: 1px solid #ddd;
+  text-align: center;
+  vertical-align: middle;
+}
+
 /* ---------------------------------------- */
 /* Version */
 </diff>
      <filename>scribblings/scribble.css</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
 #lang scheme/base
 
-(require (planet &quot;web.scm&quot; (&quot;soegaard&quot; &quot;web.plt&quot; 2 1))
+(require &quot;web-export.ss&quot;
          &quot;web-support.scm&quot;
          (file &quot;util.scm&quot;)
          (file &quot;time.scm&quot;)</diff>
      <filename>session.scm</filename>
    </modified>
    <modified>
      <diff>@@ -19,7 +19,6 @@
          (for-syntax scheme/base)
          scheme/match
          (lib &quot;pretty.ss&quot;)
-         (planet &quot;web.scm&quot; (&quot;soegaard&quot; &quot;web.plt&quot; 2 1)) ; XXX get rid of this dependency
          (lib &quot;unit.ss&quot;)
 
          (only-in  file/md5 md5)
@@ -139,8 +138,6 @@
          
          (all-from-out scheme/match)
          
-         xexpr-&gt;string ; XXX implement yourself!
-         
          splice-if
          asplice-if
 </diff>
      <filename>util.scm</filename>
    </modified>
    <modified>
      <diff>@@ -3,9 +3,12 @@
 ;; form validation
 
 (require &quot;util.scm&quot;
-         &quot;record.scm&quot;)
+         &quot;record.scm&quot;
+         &quot;contract-lp.ss&quot;)
 
-(provide validate field-validate)
+(provide validate
+         ;; field-validate (via contract)
+         )
 
 ;; constructs a fn suitable for passing in to the #:validate keyword of a form call
 ;; the fn : rec -&gt; content
@@ -20,13 +23,24 @@
           #f
           (string-join errors &quot;\n&quot;)))))
 
-(define (field-validate field-name (pred #f))
+;;
+;; field-validate
+;;
+(provide/contract (field-validate (-&gt;* (symbol?)
+                                       ((or/c #f (-&gt; any/c any/c))
+                                        #:msg-fn (-&gt; any/c string?))
+                                       (-&gt; rec? (or/c #f string?)))))
+;;
+(define (field-validate field-name
+                        (pred #f)
+                        #:msg-fn (msg-fn (lambda (bad-val)
+                                           (format &quot;'~A' is an invalid value for field ~A.&quot;
+                                                   field-name bad-val))))
   (lambda (rec)
     (aif (rec-prop rec field-name)
          (if pred
              (if (pred it)
                  #f
-                 (format &quot;Validation error triggered by failure of ~A on field '~A'.&quot;
-                         pred field-name))
+                 (msg-fn it))
              #f)
          (format &quot;Missing field '~A'.&quot; field-name))))</diff>
      <filename>validate.scm</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,14 @@
 #lang scheme/base
 
+;; This differs from web-export.ss in that these are ones that we wrote and aren't
+;; included in PLT libs.
+
 (require (file &quot;util.scm&quot;)
-         (lib &quot;xml.ss&quot; &quot;xml&quot;)
+         xml
          net/url
          scheme/serialize
+         &quot;web-export.ss&quot;
          &quot;contract-lp.ss&quot;
-         (planet &quot;web.scm&quot; (&quot;soegaard&quot; &quot;web.plt&quot; 2 (= 1)))
          )
 
 (provide request-all-bindings
@@ -17,7 +20,6 @@
          web-link
          img
          raw-str
-         with-binding ; from web.plt
          basic-response
          xexpr-if
          url+query</diff>
      <filename>web-support.scm</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>bootstrap.scm</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>7070c10f9c63b8cf935a03271b6c1738347a678c</id>
    </parent>
  </parents>
  <author>
    <name>Rob Hunter</name>
    <email>rob.hunter@gmail.com</email>
  </author>
  <url>http://github.com/vegashacker/leftparen/commit/af0a54969668fece9b52269c99279e976b4ed04a</url>
  <id>af0a54969668fece9b52269c99279e976b4ed04a</id>
  <committed-date>2009-01-08T13:42:37-08:00</committed-date>
  <authored-date>2009-01-08T13:42:37-08:00</authored-date>
  <message>added web-export for convenient internal access to plt web-related tools; got rid of dependence on web.plt and uuid-v4.plt planet libraries; simplified project generation interface; upgraded LP to work with PLT's serve/servlet functionality; exported some facebook routines even though it's not ready for prime time; updated the documentation</message>
  <tree>45c96bb3688d7891d54a97f9a5239ea7712f6f01</tree>
  <committer>
    <name>Rob Hunter</name>
    <email>rob.hunter@gmail.com</email>
  </committer>
</commit>
