19 val infer_types: type_sig * typ Symtab.table * (indexname -> typ option) * |
19 val infer_types: type_sig * typ Symtab.table * (indexname -> typ option) * |
20 (indexname -> sort option) * (typ -> string) * typ * term |
20 (indexname -> sort option) * (typ -> string) * typ * term |
21 -> term * (indexname*typ)list |
21 -> term * (indexname*typ)list |
22 val inst_term_tvars: type_sig * (indexname * typ)list -> term -> term |
22 val inst_term_tvars: type_sig * (indexname * typ)list -> term -> term |
23 val logical_type: type_sig -> string -> bool |
23 val logical_type: type_sig -> string -> bool |
24 val logical_types: type_sig -> string list |
24 val logical_types: type_sig -> string list |
25 val merge: type_sig * type_sig -> type_sig |
25 val merge: type_sig * type_sig -> type_sig |
|
26 val rep_tsig: type_sig -> |
|
27 {classes: class list, default: sort, |
|
28 subclass: (class * class list) list, |
|
29 args: (string * int) list, |
|
30 coreg: (string * (class * sort list) list) list} |
26 val thaw_vars: typ -> typ |
31 val thaw_vars: typ -> typ |
27 val tsig0: type_sig |
32 val tsig0: type_sig |
28 val type_errors: type_sig * (typ->string) -> typ * string list -> string list |
33 val type_errors: type_sig * (typ->string) -> typ * string list -> string list |
29 val typ_instance: type_sig * typ * typ -> bool |
34 val typ_instance: type_sig * typ * typ -> bool |
30 val typ_match: type_sig -> (indexname*typ)list * (typ*typ) -> |
35 val typ_match: type_sig -> (indexname*typ)list * (typ*typ) -> |
82 coreg: a two-fold association list of all type arities; (t,al) means that |
87 coreg: a two-fold association list of all type arities; (t,al) means that |
83 type constructor t has the arities in al; an element (c,ss) of al |
88 type constructor t has the arities in al; an element (c,ss) of al |
84 represents the arity (ss)c |
89 represents the arity (ss)c |
85 *) |
90 *) |
86 |
91 |
|
92 fun rep_tsig (TySg comps) = comps; |
87 |
93 |
88 val tsig0 = TySg{classes = [], |
94 val tsig0 = TySg{classes = [], |
89 default = [], |
95 default = [], |
90 subclass = [], |
96 subclass = [], |
91 args = [], |
97 args = [], |