
"Neil Mitchell"
So where would the library half of HatCover vs the program half of HatCover go?
HatCover -> Tracing.Hat.Coverage HatCoverText -> Tracing.Hat.Coverage.Textual hypothetical -> Tracing.Hat.Coverage.HTML hypothetical -> Tracing.Hat.Coverage.Gtk
Hmm, I don't like that much. I'm not entirely sure about this whole calling console programs "Textual", they aren't, they are Console programs (I object to HatCoverText as well).
Well, "console" is the wrong word as well. On a unix machine, there is only one console, but there may be many textual terminals or terminal emulators. I intended the word "textual" to indicate an API that produces Strings, not something that interacts per se with a terminal. However, I now realise that your objection is probably that the text strings produced are not pure - they have ANSI terminal colour codes. Fair enough. HatCoverText -> Tracing.Hat.Coverage.ANSIterm
It also obscures the fact that HTML should be an API (so the Console and Gui can use it), but Gtk will probably be a viewer.
Well, I intended that all of these should be APIs, the ANSI coloured text as much as the HTML. As you say, the actual rendering of these belongs elsewhere. So if there is no particular role for a GTK API for hat-cover, it should not exist as a module Tracing.Hat.Coverage.Gtk. The rendering might therefore belong in something like Tracing.Hat.GtkGUI which might use APIs from Tracing.Hat.Coverage as well as Tracing.Hat.Observe, and numerous others as well. Regards, Malcolm