Phase Next

These are much less well considered! The primary reason for documenting them now is merely to make sure that nothing in Phase One blocks future development.

What's the Problem?

Condition System

;; simple degenerate example
;; error matcher is IOException (could be arbitrary match)
;; context is :io (could be arbitrary match)
;; handler is "<NO DATA>" (could be arbitrary fn)
(defn top []
  (with-handler :io "<NO DATA>"
    (middle)))

(defn middle []
  (try*
   (bottom)
   (handle IOException :io)))

(defn bottom []
  (slurp "file-does-not-exist"))

Better Java Unification