ref: e70d7196737e825c0b884572de64c699c482c939
dir: /lib/std/diriter.myr/
use "alloc.use"
use "dir.use"
use "option.use"
pkg std =
	type diriter = dir#
	impl iterable diriter -> byte[:]
	const byentry	: (d : dir# -> diriter)
;;
const byentry = {d
	-> d castto(diriter)
}
impl iterable diriter -> byte[:] =
	__iternext__ = {itp, valp
		match dirread(itp# castto(dir#))
		| `Some ent:
			valp# = ent
			-> true
		| `None:
			-> false
		;;
	}
	__iterfin__ = {itp, valp
		std.slfree(valp#)
	}
;;