     :reader-literal-prefix (p/unspaced open-reader-literal :symbol)
     :reader-literal [:reader-literal-prefix :expr]
     :symbol
-;      #"(?:[\-\+](?![0-9])[^\^\(^\[^\#^\{^\\^\"^\~^\%^\:^\,^\s^\;^\@^\`^\)^\]^\}]*)|(?:[^\^\(\[^\#\{\\\"\~\%\:\,\s\;\'\@\`\)\]\}\-\+;0-9][^\^\(\[\#\{\\\"\~\%\:\,\s\;\@\`\)\]\}]*|#(?![\{\(\'\^\"\_\!])[^\^\(\[\#\{\\\"\~\%\:\,\s\;\'\@\`\)\]\}]*)#?"
       #"(?:(?:[\-\+](?![0-9])[^\^\(^\[^\#^\{^\\^\"^\~^\%^\:^\,^\s^\;^\@^\`^\)^\]^\}]*)|(?:[^\^\(\[^\#\{\\\"\~\%\:\,\s\;\'\@\`\)\]\}\-\+;0-9][^\^\(\[\#\{\\\"\~\%\:\,\s\;\@\`\)\]\}]*))#?"
     :keyword (p/unspaced open-keyword #"[^\(\[\{\'\^\@\`\~\"\\\,\s\;\)\]\}]*"); factorize with symbol
     :int #"(?:[-+]?(?:0(?!\.)|[1-9][0-9]*+(?!\.)|0[xX][0-9A-Fa-f]+(?!\.)|0[0-7]+(?!\.)|[1-9][0-9]?[rR][0-9A-Za-z]+(?!\.)|0[0-9]+(?!\.))(?!/))"

(def open-anon-arg "%")
(def open-keyword #":{1,2}")
(def open-discard "#_")
;(def whitespace #"(?:[,\s]+)")
;(def whitespace #"(?:[, \t\r]+|\n[, \t]+)") ca casse quelques tests ... 
(def whitespace #"(?:[, \t]+|\r?\n)")
(def open-comment #"(?:\#\!|;)")
(def open-reader-literal #"#(?![\(\^\"\{\'\_\!])")

          (mapcat identity (view-children-seq tokens-view (next abstract-children)))))

(defn- tokens [t abstract-children count] 
  (cond
    (= :whitespace t) (token :whitespace count)
    (= :space t) (token :whitespace count) ; TODO one of this and the above is irrelevant. Which one ?
