Make the HaskStrong type representation Kind-indexed, and many supporting changes...
authorAdam Megacz <megacz@cs.berkeley.edu>
Sat, 12 Mar 2011 12:44:18 +0000 (04:44 -0800)
committerAdam Megacz <megacz@cs.berkeley.edu>
Sat, 12 Mar 2011 13:36:01 +0000 (05:36 -0800)
commit8c26722a1ee110077968a8a166eb7130266b2035
tree055a6cf48911bcb0a8eabc05dbdf8a7096db4afe
parentb8f6adf700fa3c67feefaea3d2cf5c4626300489
Make the HaskStrong type representation Kind-indexed, and many supporting changes (see long comment).

This patch makes a whole lot of interlocking changes, with the
ultimate (accomplished) goal of changing the HaskStrong type
representation ("HaskType") so that it is indexed by the Haskell Kind
of the type.  As a result, the auxiliary well-kindedness judgment
\vdash_{ty} is no longer necessary.

Other changes in this patch:

  - Added Coq ToString class (similar to Haskell's Show class)
  - Massive reduction in volume of code extracted for string literals
  - Decidable equality on HaskStrong's
  - Much more reliable HaskWeakToStrong, although it has regressed
    a bit in terms of number of cases handled; this will be remediated
    shortly.
20 files changed:
src/Extraction-prefix.hs
src/Extraction.v
src/General.v
src/HaskCoreLiterals.v
src/HaskCoreToWeak.v
src/HaskCoreTypes.v
src/HaskCoreVars.v
src/HaskKinds.v
src/HaskProof.v
src/HaskProofToLatex.v
src/HaskProofToStrong.v
src/HaskStrong.v
src/HaskStrongToProof.v
src/HaskStrongToWeak.v
src/HaskStrongTypes.v
src/HaskWeak.v
src/HaskWeakToStrong.v
src/HaskWeakTypes.v
src/HaskWeakVars.v
src/Preamble.v