A simple directory-like tree datatype, with useful IO functions, for Haskell