1.
lm_filename_util: separator use standard Filename.dir_sep
2.
lsdir use readdir -- note they raise different exception(Unix_error vs Sys_error)
3.
is_dir use is_directory(while exception less)