src/Pure/type.ML
changeset 189 831a9a7ab9f3
parent 162 58d54dc482d1
child 200 39a931cc6558
equal deleted inserted replaced
188:6be0856cdf49 189:831a9a7ab9f3
    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 = [],