add hetmet_unflatten
authorAdam Megacz <megacz@cs.berkeley.edu>
Mon, 9 May 2011 21:11:51 +0000 (14:11 -0700)
committerAdam Megacz <megacz@cs.berkeley.edu>
Tue, 31 May 2011 21:59:09 +0000 (14:59 -0700)
GHC/HetMet/CodeTypes.hs
GHC/HetMet/Private.hs

index 424551b..d7dcac2 100644 (file)
@@ -5,6 +5,7 @@ module GHC.HetMet.CodeTypes (
   hetmet_csp,
   hetmet_flatten,
   pga_flatten,
+  pga_unflatten,
   pga_flattened_id,
   GuestIntegerLiteral, guestIntegerLiteral,
   GuestStringLiteral, guestStringLiteral,
@@ -32,9 +33,9 @@ hetmet_flatten ::
    forall g .
     GArrowSTKC g (,) () =>
       forall x y.
-         <[ x -> y ]>@g
+         <[ y ]>@g
          ->
-         (g x y)
+         (g () y)
 hetmet_flatten x = unG (pga_flatten x)
 
 -- After the flattening pass the argument and result types of this
@@ -44,14 +45,19 @@ hetmet_flatten x = unG (pga_flatten x)
 -- type-inference/checking:
 pga_flatten ::
    forall g x y.
-     <[ x -> y ]>@g ->
-     PGArrow g x y
+     <[ y ]>@g ->
+     PGArrow g () y
 pga_flatten = error "hetmet_flatten should never be evaluated; did you forget to compile with -fcoqpass?"
+pga_unflatten ::
+   forall g x y.
+     PGArrow g () y ->
+     <[ y ]>@g
+pga_unflatten = error "hetmet_flatten should never be evaluated; did you forget to compile with -fcoqpass?"
 
 pga_flattened_id ::
    forall g x y.
-     PGArrow g x y ->
-     PGArrow g x y
+     PGArrow g () y ->
+     PGArrow g () y
 pga_flattened_id x = x
 
 
index 68861a0..a55d282 100644 (file)
@@ -10,7 +10,7 @@
 -- Portability :  portable
 
 module GHC.HetMet.Private (
-  PGArrow (unG),
+  PGArrow (..),
   pga_id,
   pga_comp,
   pga_first,