add hetmet_unflatten
[ghc-base.git] / GHC / HetMet / CodeTypes.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