> In principle I can do this, but:
> 1. how do I hide the import of show String to replace it w/ my own?
> 2. If I do replce show String what else will break?
> 3. If instead I define an eshow function that strips "", how do I minimize
> the perforamnce hit of quote stripping?
> 4. If I want to share my code, I have to share both the actual codebase as
> well as the preprocessor code. This seems like sucha basic language
> syntax issue that I shouldn't have to worry about which version of haskell
> your collaborators are running. Everyone writing their own preprocessor
> will severely balkanize the language.
Hm, it seems to me that that is the cost of being a maverick.
> 5. How does the use of this pre-processor interact w/ tools like Derive
> and PolyP which are also implemented as preprocessors?
>
> That being said, I would be happy to take a shot at HacWrite if it had a
> shot of becoming part of the language definition (or if it was a standard
> part of the various haskell distributions: ghc, hugs, hbc,etc.) and if
> Magnus would allow it.
>
> Is there a good lanugage reason to object to this feature? It seems like
> a no brainer imprpovement.
(Allow me to play devil's advocate.)
Not everyone uses Haskell to do web page processing or text processing, and
Haskell already has too much syntactic sugar. I don't like your notion of
changing the semantics of Show String, and I don't like the implicit show
coercions for variables that get substituted into a string. (Whenever
coercions get to be a pain, my instinct is to hide them in the plumbing of a
set of combinators.) Preprocessing introduces another stage into the
compilation process, and makes it that much more difficult to understand a
program; interaction between preprocessors can be tricky (as you pointed
out).
--FC