 	                 "(a,|b)" "(a, (|) b)"
 	                 "(a,|)" "(a, (|))"
 	                 "\\| " "\\(| "
+	                 "~|" "~(|)"
+	                 "~@|" "~@(|)"
 	                 "\\\\| " "\\\\ (|) "}]
 	    [")"         :paredit-close-round
 	                {"(a |b)" "(a b)|"

  :paredit-open-round
  [cmd {:keys [text offset length] :as t}]
  (open-balanced [\( \)] t 
    (into *real-spaces* *open-brackets*)
    (into *extended-spaces* *close-brackets*)))
    
(defmethod paredit 
  :paredit-open-square
  [cmd {:keys [text offset length] :as t}]
  (open-balanced [\[ \]] t
    (into *real-spaces* *open-brackets*)
    (into *extended-spaces* *close-brackets*)))
    
(defmethod paredit 
  :paredit-open-curly
  [cmd {:keys [text offset length] :as t}]
  (open-balanced [\{ \}] t
    (conj (into *real-spaces* *open-brackets*) \#) ; add # for not inserting space before a set FIXME
    (into *extended-spaces* *close-brackets*)))
    
(defmethod paredit 

(def *open-brackets* (conj (set "([{") nil)) ; we add nil to the list to also match beginning of text 
(def *close-brackets* (conj (set ")]}") nil)) ; we add nil to the list to also match end of text

(def *form-macro-chars* #{\# \~ "~@" \' \` \@ "#^" "#'" "#_"})

(defn text-spec-to-text 
  "Converts a text spec to text map" 
  [#^String text-spec]
