ref: d159e8c6b102a1c5d9a7625ecc8176f08290c259
dir: /lib/iter/reverse.myr/
use std pkg iter = type reverseiter(@a) = struct sl : @a[:] idx : std.size ;; impl iterable reverseiter(@a) -> @a generic byreverse : (sl : @a[:] -> reverseiter(@a)) ;; generic byreverse = {sl -> [.sl = sl, .idx = sl.len] } impl iterable reverseiter(@a) -> @a = __iternext__ = {itp, valp if itp.idx > 0 valp# = itp.sl[itp.idx - 1] itp.idx-- -> true else -> false ;; } __iterfin__ = {itp, valp } ;;