When I implemented Arc in Lumen (more info on Lumen: http://arclanguage.org/item?id=20935), this technique was ported over naturally. You can play with it here:
git clone https://github.com/lumen-language/lumen
git checkout 2018-10-29/arc
npm i
rlwrap bin/lumen-node # rlwrap is optional
> (load "arc.l")
function
> (mac awhen (cond . body)
`(let it ,cond
(when it ,@body)))
> (awhen 'hi (print it))
hi
> (awhen nil (print 'hi))
> (awhen 1 (print it))
1
> (awhen 1 (print it)
(let-macro ((awhen (cond . body)
`(let it ,cond
(unless it ,@body))))
(awhen false (print it)))
(awhen 42 (print it)))
1
false
42
>
It's not quite a complete port, but it's pretty close. It also runs on node, so you can use any npm library in Arc.