(def >> (parm . args) ((afn (parm args) (if (no args) parm (self ((car args) parm) (cdr args)))) parm args))
(def >> args (rreduce (fn (a b) a.b) rev.args))
-----
(def >> args ; throw an error here so that user won't get ; mysterious errors in the 'reduce part (if (no args) (err "'>> requires at least one argument")) (reduce (fn (a b) b.a) args))