Malcolm Wallace wrote:
If you restrict yourself to programs entirely written by humans, I
agree completely. But if you consider programs written by programs
(say Template Haskell to be specific, but it could be via many other
means), such degenerate types occur rather often.
I find the "program-generated code" argument rather weak. In that
past it was used to justify all kinds of minor horrors like excess
commas in lists and so on. But if one can write a program to generate
syntactically valid but ugly code, one can easily spend a little extra
effort on making the result beautiful too.
I used to think so too - but some very hard-won experience [1] has
changed my mind. Generating good code is very hard. And if you are
doing it in a typeful way (see [1] again), you may not be able to "spend
a little extra effort" to make the results beautiful, because typeful
code does not let you do introspection very easily.
I will agree with you on one aspect: if the "program-generated code"
done by untyped manipulations, then writing a small type-simplifier is
pretty easy, and my argument is weak. But this is Haskell we're talking
about, and one should really hope that TH will eventually be typed, no?
After all, which is the more difficult task - devising the auto-coding
schema, or pretty-printing?
If pretty-printing was all there was to it, I would not have made this
comment. Pretty-printing is indeed easy. Typeful type-level
programming is quite hard.
Jacques
[1] http://www.cas.mcmaster.ca/~carette/metamonads/
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime