I have a couple of questions regarding THSyntax (if any of
this is in the paper, just say so and I'll go and look for
it):
* In `Lit' what is the purpose of `CrossStage String'?
* NB: `counter' uses `unsafePerformIO' in an unsafe way :-)
I'll fix that.
* The type of `lift' is different from the paper. I guess
that's a feature.
* What's the point of giving three type arguments to `Match'
and `Clause' that are always used with the same type?
(IMHO just makes the types harder to read.) Ditto for
`Statement'.
* Nitpick: Wouldn't `Clause' better be called `Equation'?
* In Exp, what is `Br' and `Esc' for?
* Nitpick: In `Dec', wouldn't call `Proto' better be called
`Signature'? (Or `Sig' if you want to keep it short.)
It's Haskell and not C after all ;-)
* I wonder whether it is a good idea to define
type Type = Typ -- No need for Q here
Doesn't the lack of Q not imply that we can't extend this
to explicit foralls without changing the type and breaking
every program using this?
* I am far from convinced of the naming scheme of the
combinator-based types. Stuff like Rhs/Rihs and DDt/DDot
may be easy to remember for the person who invented the
naming scheme, but be a nuisance to others. Usually a
regular naming scheme (even if ugly) is easier to
memorise (eg, prefixing each combinator-based type with a
"C").
I am happy to add comments (based on answers to above
questions) and change stuff (if this is ok with everybody).
Cheers,
Manuel
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc