In response to a request and my own review I’ve modified my directory-tree package as follows:
Eq and Ord instances now compare on free “contents” type variable
equalShapefunction for comparison of shape and filenames of arbitrary trees (ignoring free “contents” variable)
provide a comparingShape used in sortDirShape
sortDirShapefunction that sorts a tree, taking into account the free file “contents” data
Now that equality and comparison functions that ignore the contents of Files are out of the Eq and Ord instances, we can make those types of comparisons on DirTrees of different types.
You can pick it up with a
$ cabal install directory-tree