 (def &line-continuation
   (&do &backslash &eol))
 
+(def &whitespace
+  (&repeat (&or (&char-if whitespace) &line-continuation)))
+
 (def &leading-whitespace-continued
   (&let
     [column &leading-whitespace-raw


(defn &indent [column]
  (fn [[in [top :as is] out :as σ]]
    (if (> column top)
      [nil [in (conj is column) (conj out :indent)]]
      (loop [[top & ris :as is] is
             out out]
        (cond
         (= column top) [nil [in is out]]
         (or (empty? ris) (> column top)) ((&error {:r "invalid dedentation"}) σ)
         :else (recur ris (conj out :dedent)))))))

(def &comment-eol
  (&do (&optional (&do (&char= \#) (&repeat (&char-if-not crlf)))) &eol))


(def whitespace #{\space \tab \formfeed})

(def crlf #{\return \newline})

(def &eol
