   'reduced' will halt further processing."
   [prev-state state [old-i line cache]]
   (let [state (process-line state line)
-        new-cache (last (:postline-states state))
+        new-cache (last (:postindent-states state))
         more? (< (inc old-i) (count (:lines prev-state)))
-        can-skip? (= new-cache cache)]
+        can-skip? (and new-cache (= new-cache cache))]
     (if (and can-skip? more?)
       (reduced (fill-rest-with-cache prev-state state old-i))
       state)))

        skip? (and check-indent? (closing-delim? ch))
        at-indent? (and check-indent? (not skip?))
        state (assoc state :process? (not skip?))]
    (cond-> state
      at-indent? (close-delims x-pos))))

(defn update-line
  "Update the state by adding processed character to the line."

  (cond-> state
    (= 0 (:line-dy insert))
    (assoc-in [:insert :line] (get lines line-no))))

(defn process-char*
  [state]
