ref: 905f4d10a78e7e2f6eb849cf373b14cd78c87d73
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 } ;;