     Evaluate BODY when the micro-state is switched on.
 
 `:on-exit BODY'
-    Evaluate BODDY when leaving the micro-state.
+    Evaluate BODY when leaving the micro-state.
 
-`:documentation STRING'
-    A documentation STRING displayed in the minibuffer
+`:documentation BODY'
+    Evaluate BODY which must return a string
 
 `:bindings EXPRESSIONS'
     One or several EXPRESSIONS with the form

         (wrapper-func (eval `(defun ,wrapper-name ()
                                "Auto-generated function"
                                (interactive)
                                (echo ,doc)
                                (when ',wrapped
                                  (call-interactively ',wrapped))))))
    (append (list (car binding) wrapper-func) binding)))

    `(defun ,func ()
       ,(format "%s micro-state." (symbol-name name))
       (interactive)
       (let ((doc ,@doc)) (when doc (echo doc)))
       ,@on-enter
       (,(if (version< emacs-version "24.4")
             'set-temporary-overlay-map
