To show more of what is possible, "lib/treeparse-examples.arc" shows how to define the 20-line hcase2 macro, a pattern matching case statement that extends defpat with guard clauses and some infix sugar.
(def union (< xs ys)
"Merge two sorted lists, discarding duplicates."
(hcase2 `(,xs ,ys)
xs () = xs
() ys = ys
(x . xt) (y . yt)
|| x < y = x : (union < xt ys)
|| y < x = y : (union < xs yt)
|| t = x : (union < xt yt)))