
Hi, The current hattools directory has 38 Haskell files in it, and 34 .h/.c files. It would be nice if these were split so it was easy to determine the files in one program, and what is a tool versus what is a library. The following is a draft proposal: Hat - global module in which all Hat stuff resides (this clashes with the hat-trans output, does this matter?) Hat.Lib - directory for libraries, which export a nice API for using in the tools - for example HatCover as Hat.Lib.Cover. Hat.Tool - directory for the tools, for example HatCoverText, as Hat.Tool.Cover Hat.Common - Common functions which are unrelated to Hat tracing, but are used by the Tools, for example HighlightStyle as Hat.Common.HighlightStyle Within Hat.Tool, I would expect some simpler (one module) tools to be Hat.Tool.ToolName, but more complex tools would be Hat.Tool.ToolName.Modules, with a single Hat.Tool.ToolName module which imports the others. To keep the structure of having a Main module at the root which is the tool for each given tool, for each tool a file would be created: -- file HatCover.hs import Hat.Tool.Cover This file gives an easy module Main to be located for each tool. The advantages of this scheme: * Easier to differentiate between libraries and tools * Easier to find a particular tool and all its given code * Clearer separation of Hat code vs general Haskell Thanks Neil