anchor.diff:  (defun t16g ()
     "Use the element default style of the form."
     (with-screen (scr :input-echoing nil :cursor-visible t :enable-colors t :enable-function-keys t :input-blocking t)
  -    (let* ((s1 (list :fgcolor :blue :bgcolor :black))
  -           (s2 (list :simple-char #\_))
  -           (s3 (list :fgcolor :yellow :bgcolor :red :attributes '(:bold :italic)))
  -           (s4 (list :simple-char #\_ :fgcolor :white :bgcolor :blue))
  -
  +    (let* (;; character styles that can be referenced in element styles
  +           (ch1 (list :fgcolor :blue :bgcolor :black))
  +           (ch2 (list :simple-char #\_))
  +           (ch3 (list :fgcolor :yellow :bgcolor :red :attributes '(:bold :italic)))
  +           (ch4 (list :simple-char #\_ :fgcolor :white :bgcolor :blue))
  +           (ch5 (list :fgcolor :yellow :simple-char #\.))
  +           
              ;; element styles reference previousy defined character styles.
  -           (s5 (list :foreground s1 :background s2 :selected-foreground s3 :selected-background s4))
  -           (s6 (list :foreground s4 :selected-foreground s3))
  -
  -           (s8 (list :fgcolor :yellow :simple-char #\.))
  -           (s9 (list :foreground s1 :background s8))
  +           (s1 (list :foreground ch1 :background ch2 :selected-foreground ch3 :selected-background ch4))
  +           (s2 (list :foreground ch4 :selected-foreground ch3))
  +           (s3 (list :foreground ch1 :background ch5))
              
              ;; the form style consists of default styles of form elements.
  -           (s7 (list 'field s5 'button s6 'label s9 'checkbox s5))
  -
  +           (sf1 (list 'field s1 'button s2 'label s3 'checkbox s1))
  +           
              (field1 (make-instance 'field :name :f1 :title "Forename" :location (list 3 20) :width 15 :max-buffer-length 5))
              (field2 (make-instance 'field :name :f2 :title "Surname"  :location (list 5 20) :width 15))
              (field3 (make-instance 'field :name :f3                   :location (list 7 20) :width 15 :max-buffer-length 20))
   
              (cb1 (make-instance 'checkbox :name :c1 :title "Employed" :location (list 9 20)))
  -
  +           
              (label1 (make-instance 'label :name :l1 :reference :f1 :width 18 :location (list 3 1)))
              (label2 (make-instance 'label :name :l2 :reference :f2 :width 18 :location (list 5 1)))
              (label3 (make-instance 'label :name :l3 :title "Age"             :location (list 7 1)))
  
positive.code:         (refresh scr)
  
          (setf (callback button1) 'reset-form)
          (setf (callback button2) 'cancel-form)
          (setf (callback button3) 'accept-form)
  
          (if (edit form)
              (setq value (pairlis (list (title field1) (title field2))
  
negative.code:            ;; a window is associated with the parent form, and can be accessed by the elements.           
             (form (make-instance 'form :elements (list field1 field2 field3 button1 button2 button3) :window scr)))
  
        ;; for debugging, return prints the content of the buffer and then deletes the buffer
        (bind form :f4 'de.anvi.croatoan::debug-print-field-buffer)
        (bind (find-keymap 'field-map) :f3 'de.anvi.croatoan::debug-print-field-buffer)
  
        ;; Functions to be called when the button is activated by #\newline or #\space.
        (setf (callback button1) (lambda (b e) (save-excursion scr (move scr 0 0) (format scr "Hello there"))))
        (setf (callback button2) 'accept)
        (setf (callback button3) 'cancel)
  
        ;; pressing ^A or C-a (for "accept") exits the edit mode
        ;; TAB, up and down cycles the fields and buttons
  