        (:indent)
        ,,[:indent w
           [:wrap {} text]]
-       
+
        (:str)
        ,,[:wrap {} text])]))
-  
 
 (defn text->paragraphs
   "(λ String) → (Seq String)

        true
        ,,:str))


(defmulti render
  render-dispatch)


(defmethod render :seq
  [forms]
  (->> forms
     (map render)
     (apply str)))


(defmethod render :str
  [& xs]
  (->> xs
     (map str)
     (apply str)))


(defmethod render :indent
  [[_ {width :width
       :or {width 2}
       :as opts} & text]]
  (->> text
     (map render)
     (apply str)
     (prefix-lines (apply str (repeat width \space)))))


(defmethod render :prefix
  [[_ {prefix :prefix :as opts} & text]]
  (->> text
     (prefix-lines prefix)))


(defmethod render :wrap
  [[_ {width :width

            "```" \newline)
       (ensure-trailing-newline <>)))

(defmethod render :block
  [[_ opts & text]]
  (-<> text
