     (conj (into *real-spaces* *open-brackets*) \#) ; add # for not inserting space before a set
     (into *extended-spaces* *close-brackets*)))
     
+(defmethod paredit 
+  :paredit-close-round
+  [cmd {:keys [text offset length] :as t}]
+  (close-balanced [\( \)] t
+    nil nil))
+
+(defmethod paredit 
+  :paredit-close-square
+  [cmd {:keys [text offset length] :as t}] t
+  (close-balanced [\[ \]] t
+    nil nil))
+
+(defmethod paredit 
+  :paredit-close-curly
+  [cmd {:keys [text offset length] :as t}] t
+  (close-balanced [\{ \}] t
+    nil nil))
+
 (defn test-command [title-prefix command]
   (testing (str title-prefix " " (second command) " (\"" (first command) "\")")
     (doseq [[input expected] (get command 2)]

                   "\\| " "\\{| "
                   "\\\\| " "\\\\ {|} "
                   }]
    ]
  ])


                   "(a,|)" "(a, [|])"
                   "\\| " "\\[| "
                   "\\\\| " "\\\\ [|] "}]
      ["]"         :paredit-close-square
                  {#_"(define-key keymap [frob|  ] 'frobnicate)"
                   #_"(define-key keymap [frob]| 'frobnicate)"
                   "; [Bar.|" "; [Bar.]|"
                   "  \"Hello,| world!\" foo" "  \"Hello,]| world!\" foo"
                   "  \"Hello,| world!" "  \"Hello,]| world!"
                   "foo \\|" "foo \\]|"}]
      ["{"         :paredit-open-curly ; this command does not exist in paredit AFAIK
                 {"(a b |c d)"  "(a b {|} c d)"
                  "(foo \"bar |baz\" quux)" "(foo \"bar {|baz\" quux)"}
