(defn parse-monitor-exit
[[_ target :as form] env]
(when-not (= 2 (count form))
(throw (ex-info (str "Wrong number of args to monitor-exit, had: " (dec (count form)))
(merge {:form form}
(-source-info form env)))))
{:op :monitor-exit
:env env
:form form
:target (-analyze target (ctx env :ctx/expr))
:children [:target]})