I found another bug in the tri-weave macro
(if (and (on-board? $2) (not-friend? $2)) (recycle) $2 add $3)
is not right. The (recycle) is not executed at the position on which the
possible capture takes place, so it has to be:
(if (and (on-board? $2) (not-friend? $2)) $2 (recycle) add $3)
The same correction for the same line with $2 <--> $3 a few lines lower.