anchor.diff:      #\\# #\\Space    -- Treats the line as a shell command, e.g. `# ls`
       <anything else>-- Runs as a lisp command
   
  -So, press enter to coninue!" name))
  +So, press enter to coninue!~%" name))
   
   (defun parse-markdown (pathname)
     (3bmd-grammar:parse-doc
  
positive.code:         finally (return lines)))
  
  (defun print-next-tutorial-group (v index stream)
    (flet ((type (i)
             (car (aref v i)))
           (output-line-count (i)
             (let ((string
                    (with-output-to-string (s)
                      (with-protected-markdown-context
                        (3bmd::print-md-element (aref v i) s)))))
               (lines string))))
      (labels ((start (n)
                 (case (type n)
                   (:heading
                    #'start)
                   ((:verbatim . #.(when (find-package "3B-MD-CODE-BLOCKS")
                                     `(,(find-symbol
                                         "CODE-BLOCK" "3B-MD-CODE-BLOCKS"))))
                    #'verbatim) 
                   (t
                                          ;(:paragraph :counted-list :bullet-list)
                    #'paragraph)))
               (verbatim (n) (declare (ignore n)) #'end)
               (paragraph (n)
                 (case (type n)
                   (:heading #'end)
                   ((:verbatim . #.(when (find-package "3B-MD-CODE-BLOCKS")
                                     `(,(find-symbol
                                         "CODE-BLOCK" "3B-MD-CODE-BLOCKS"))))
                    #'verbatim)
                   (t #'paragraph)))
               (end (n)
                 (do* ((j index (+ 1 j))
                       (lc (output-line-count j)
  
negative.code:                      (return-from print-next-tutorial-group
                         (1- n)))
                   (3bmd::print-md-element (aref v j) stream))))
        (if (< index (length v))
            (loop for idx from index
                  for state = (start idx) then (funcall state idx))
            (progn (format stream "Thank you, that is the end of the tutorial.~%")
                   index)))))
  
  (defun print-prompt ()
    (format t "~A> " (package-name  *package*)))
  
  (defun tutorial-read-from-string (str &optional eof-errorp eof-value)
    (let ((*readtable* (ls:package-rt 'tutorial-builder)))
      (read-from-string str eof-errorp eof-value)))
  
  (defun interactive-tutorial (l)
    (with-shard-markdown-context 
  