(def ^w (x y|whole) (apply * (nof y x))) (def clog2 (n) (if (<= n 2) 1 (inc:clog2 (/ n 2)))) (def randlen (n) (read (list (nof n (if (coin) \0 \1))) 2)) (def rand (n|pint) (poll (randlen (clog2 n)) [< _ n])) (mac wipe args `(set ,@(fuse [list _ nil] args)))