                    "(a,| b)" "(a, [|] b)"
                    "(a,|b)" "(a, [|] b)"
                    "(a,|)" "(a, [|])"}]
+      ["{"         :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)"}
+                  {"(a b|c d)" "(a b {|} c d)"
+                   "(|)" "({|})"
+                   "|" "{|}"
+                   "a|" "a {|}"
+                   "#|" "#{|}" ; specific to clojure sets
+                   "(a |,b)" "(a {|},b)"
+                   "(a,| b)" "(a, {|} b)"
+                   "(a,|b)" "(a, {|} b)"
+                   "(a,|)" "(a, {|})"
+                   }]
     ]
   ])
 

  :paredit-open-round
  [cmd {:keys [text offset length] :as t}]
  #_(prn "t:" t)
  (open-balanced [\( \)] t))
    
(defmethod paredit 
  :paredit-open-square
  [cmd {:keys [text offset length] :as t}]
  #_(prn "t:" t)
  (open-balanced [\[ \]] t))
    
(defn test-command [title-prefix command]
  (testing (str title-prefix " " (second command) " (\"" (first command) "\")")

	                 "(defun f (x)\n  |)"
	                "; (Foo.|"
	                 "; (Foo.)|"}]
      ["["         :paredit-open-square
                 {"(a b |c d)"  "(a b [|] c d)"
                  "(foo \"bar |baz\" quux)" "(foo \"bar [|baz\" quux)"}
                  {"(a b|c d)" "(a b [|] c d)"
