;;;; (Some nil), the run-time half -- M2 queue item 4. ;;;; ;;;; The literal (Some nil) is refused at compile time (test_flan.ml). This is ;;;; the other half: a dyn value the checker cannot see is nil until the ;;;; program runs, reaching Some anyway. flan_dyn_need_not_nil owns the ;;;; wording, the same way flan_dyn_need_i64 owns dyn-boundary.flan's. (defn maybe-nil [flag bool] dyn (if flag 5 nil)) (defn main [] () (print (match (Some (maybe-nil true)) (Some x) x None -1)) (println "") ; 5 (print (match (Some (maybe-nil false)) (Some x) x None -1)) (println ""))