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

Reply via email to