let rec print print_attr f entry =
match entry with
| Dir(path, name, _, attr, entries) ->
Format.fprintf f "@[<2>Dir(%S,@ %S,@ _,@ %a,@ %a)@]"
path name print_attr attr (List.print (print print_attr)) !*entries
| File(path, name, _, attr) ->
Format.fprintf f "@[<2>File(%S,@ %S,@ _,@ %a)@]" path name print_attr attr
| Nothing ->
Format.fprintf f "Nothing"
| Error(_) ->
Format.fprintf f "Error(_)"