hetmet_flatten ::
forall g .
- GArrowSTKC g (,) () =>
+ GArrowSTKCL g =>
forall x y.
- <[ y ]>@g
+ <[ x -> y ]>@g
->
- (g () y)
+ (g x y)
hetmet_flatten x = unG (pga_flatten x)
-- After the flattening pass the argument and result types of this
-- type-inference/checking:
pga_flatten ::
forall g x y.
- <[ y ]>@g ->
- PGArrow g () y
+ <[ x -> y ]>@g ->
+ PGArrow g x 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
+ PGArrow g x y ->
+ <[ x -> 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 () y ->
- PGArrow g () y
+ PGArrow g x y ->
+ PGArrow g x y
pga_flattened_id x = x