anchor.diff:           (when (eq command 'reset)
              (clrhash *cached-params-hash-table*))
            `(,command ,@(deduplicate-params-in-form form))))))
  +
  +(defun draw-it (stream &rest forms)
  +  "Sends a set of FORMS to the given Gypsum-connected STREAM for drawing."
  +  (format stream "~{~S~%~}" (deduplicate-params-in-body forms))
  +  (finish-output stream)
  +  (values))
   
   (defmacro with-gypsum-context (&body body)
     "Converts and sends a BODY of Gypsum drawing primitives to the Gypsum command
  
positive.code:   (when *tcp-socket*
      (socket-close *tcp-socket*)
      (setf *tcp-socket* nil)))
  
  (defun draw-it (stream &rest forms)
    "Sends a set of FORMS to the given Gypsum-connected STREAM for drawing."
    (format stream "~{~S~%~}" (deduplicate-params-in-body forms))
    (finish-output stream)
    (values))
  
  (defun deduplicate-params-in-form (form)
    "Iterates through the a Gypsum parameter list of the form (:field value
  
negative.code:                       :output t
                        :auto-close t))
  
  (defun connect (method &key
                           (device "/dev/rfcomm")
                           (host "localhost")
                           (port 8888))
    "Connects to a Gypsum server. Method must be one of :TCP or :RFCOMM. If
  :RFCOMM is specified, then the client will connect via BlueZ's rfcomm mechanisms
  as done via `connect-via-rfcomm'. If :TCP is specified, then the client will
  connect via TCP, as per `connect-via-tcp'.
  
  Keyword flags defined are:
    :device
      The device to connect via RFCOMM with. Defaults to /dev/rfcomm0.
  
    :host
      The hostname to connect to via TCP. Defaults to localhost.
  
    :port
      The port to connect to via TCP. Defaults to 8888.
  
  Returns the newly opened command stream."
    (clrhash *cached-params-hash-table*)
    (setf *command-stream*
          (cond ((eq method :tcp) (connect-via-tcp :host host :port port))
                ((eq method :rfcomm) (connect-via-rfcomm :device device))
                (t (error "Expected either :TCP or :RFCOMM as a connect method.")))))
  
  (defun disconnect ()
    "Closes and disconnects the Gypsum command stream and (if connected) TCP
  socket."
  