summaryrefslogtreecommitdiff
path: root/language/l2_typ.ott
diff options
context:
space:
mode:
Diffstat (limited to 'language/l2_typ.ott')
-rw-r--r--language/l2_typ.ott8
1 files changed, 7 insertions, 1 deletions
diff --git a/language/l2_typ.ott b/language/l2_typ.ott
index d55499e0..12baa059 100644
--- a/language/l2_typ.ott
+++ b/language/l2_typ.ott
@@ -201,8 +201,14 @@ S_N {{ tex {\Sigma^{\textsc{N} } } }} :: '' ::= {{ phantom }}
tinflist :: 'tinfs_' ::=
{{ com In place so that a list of tinfs can be referred to without the dot form }}
+ | empty :: :: empty
| tinf1 ... tinfn :: :: ls
+conformsto :: 'conformsto_' ::=
+ {{ com how much conformance does overloading need }}
+ | full :: :: full
+ | parm :: :: parm
+
E_a {{ tex \ottnt{E}^{\textsc{a} } }} :: 'E_a_' ::= {{ phantom }}
{{ hol tid |-> tinf}}
{{ lem map tid tinf }}
@@ -258,7 +264,7 @@ grammar
| { id1 |-> tinf1 , .. , idn |-> tinfn } :: :: base
{{ hol (FOLDR (\x E. E |+ x) FEMPTY [[id1 tinf1 .. idn tinfn]]) }}
{{ lem (List.foldr (fun (x,f) m -> Map.insert x f m) Map.empty [[id1 tinf1 .. idn tinfn]]) }}
- | { id |-> overload tinf : tinf1 , ... , tinfn } :: :: overload
+ | { id |-> overload tinf conformsto : tinf1 , ... , tinfn } :: :: overload
| ( E_t1 u+ .... u+ E_tn ) :: M :: union
{{ hol (FOLDR FUNION FEMPTY [[E_t1....E_tn]]) }}
{{ lem (List.foldr (union) Map.empty [[E_t1....E_tn]]) }}