projects
/
coq-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ProgrammingLanguage.v: add definitions for TypesL_{first,second}
[coq-hetmet.git]
/
src
/
HaskWeak.v
diff --git
a/src/HaskWeak.v
b/src/HaskWeak.v
index
3c7b69c
..
d5d66c0
100644
(file)
--- a/
src/HaskWeak.v
+++ b/
src/HaskWeak.v
@@
-7,14
+7,15
@@
Require Import Preamble.
Require Import General.
Require Import Coq.Lists.List.
Require Import HaskKinds.
Require Import General.
Require Import Coq.Lists.List.
Require Import HaskKinds.
-Require Import HaskCoreLiterals.
-Require Import HaskCore.
-Require Import HaskCoreVars.
-Require Import HaskCoreTypes.
-Require Import HaskCoreTypes.
+Require Import HaskLiteralsAndTyCons.
Require Import HaskWeakVars.
Require Import HaskWeakTypes.
Require Import HaskWeakVars.
Require Import HaskWeakTypes.
+Inductive WeakAltCon :=
+| WeakDataAlt : CoreDataCon -> WeakAltCon
+| WeakLitAlt : HaskLiteral -> WeakAltCon
+| WeakDEFAULT : WeakAltCon.
+
Inductive WeakExpr :=
| WEVar : WeakExprVar -> WeakExpr
| WELit : HaskLiteral -> WeakExpr
Inductive WeakExpr :=
| WEVar : WeakExprVar -> WeakExpr
| WELit : HaskLiteral -> WeakExpr
@@
-33,19
+34,18
@@
Inductive WeakExpr :=
(* from Weak to Core; it lets us dodge a possibly-failing type *)
(* calculation. The CoreVar argument is the GlobalVar for the hetmet_brak *)
(* or hetmet_esc identifier *)
(* from Weak to Core; it lets us dodge a possibly-failing type *)
(* calculation. The CoreVar argument is the GlobalVar for the hetmet_brak *)
(* or hetmet_esc identifier *)
-| WEBrak : CoreVar -> WeakTypeVar -> WeakExpr -> WeakType -> WeakExpr
-| WEEsc : CoreVar -> WeakTypeVar -> WeakExpr -> WeakType -> WeakExpr
+| WEBrak : WeakExprVar -> WeakTypeVar -> WeakExpr -> WeakType -> WeakExpr
+| WEEsc : WeakExprVar -> WeakTypeVar -> WeakExpr -> WeakType -> WeakExpr
+| WECSP : WeakExprVar -> WeakTypeVar -> WeakExpr -> WeakType -> WeakExpr
| WECase : forall (vscrut:WeakExprVar)
(scrutinee:WeakExpr)
(tbranches:WeakType)
(tc:TyCon)
(type_params:list WeakType)
| WECase : forall (vscrut:WeakExprVar)
(scrutinee:WeakExpr)
(tbranches:WeakType)
(tc:TyCon)
(type_params:list WeakType)
- (alts : Tree ??(AltCon*list WeakTypeVar*list WeakCoerVar*list WeakExprVar*WeakExpr)),
+ (alts : Tree ??(WeakAltCon*list WeakTypeVar*list WeakCoerVar*list WeakExprVar*WeakExpr)),
WeakExpr.
Definition weakTypeOfLiteral (lit:HaskLiteral) : WeakType :=
(WTyCon (haskLiteralToTyCon lit)).
WeakExpr.
Definition weakTypeOfLiteral (lit:HaskLiteral) : WeakType :=
(WTyCon (haskLiteralToTyCon lit)).
-Variable coreTypeOfCoreExpr : @CoreExpr CoreVar -> CoreType.
- Extract Inlined Constant coreTypeOfCoreExpr => "CoreUtils.exprType".