src/HOL/Tools/record_package.ML
changeset 22578 b0eb5652f210
parent 22219 61b5bab471ce
child 22596 d0d2af4db18f
--- a/src/HOL/Tools/record_package.ML	Wed Apr 04 00:10:59 2007 +0200
+++ b/src/HOL/Tools/record_package.ML	Wed Apr 04 00:11:03 2007 +0200
@@ -481,7 +481,6 @@
 fun add_parents thy NONE parents = parents
   | add_parents thy (SOME (types, name)) parents =
       let
-        val sign = Theory.sign_of thy;
         fun err msg = error (msg ^ " parent record " ^ quote name);
 
         val {args, parent, fields, extension, induct} =
@@ -489,7 +488,7 @@
         val _ = if length types <> length args then err "Bad number of arguments for" else ();
 
         fun bad_inst ((x, S), T) =
-          if Sign.of_sort sign (T, S) then NONE else SOME x
+          if Sign.of_sort thy (T, S) then NONE else SOME x
         val bads = List.mapPartial bad_inst (args ~~ types);
         val _ = null bads orelse err ("Ill-sorted instantiation of " ^ commas bads ^ " in");
 
@@ -1720,11 +1719,9 @@
 fun record_definition (args, bname) parent (parents: parent_info list) raw_fields thy =
   (* smlnj needs type annotation of parents *)
   let
-    val sign = Theory.sign_of thy;
-
     val alphas = map fst args;
-    val name = Sign.full_name sign bname;
-    val full = Sign.full_name_path sign bname;
+    val name = Sign.full_name thy bname;
+    val full = Sign.full_name_path thy bname;
     val base = Sign.base_name;
 
     val (bfields, field_syntax) = split_list (map (fn (x, T, mx) => ((x, T), mx)) raw_fields);
@@ -2172,15 +2169,14 @@
 fun gen_add_record prep_typ prep_raw_parent (params, bname) raw_parent raw_fields thy =
   let
     val _ = Theory.requires thy "Record" "record definitions";
-    val sign = Theory.sign_of thy;
     val _ = message ("Defining record " ^ quote bname ^ " ...");
 
 
     (* parents *)
 
-    fun prep_inst T = snd (cert_typ sign ([], T));
+    fun prep_inst T = snd (cert_typ thy ([], T));
 
-    val parent = Option.map (apfst (map prep_inst) o prep_raw_parent sign) raw_parent
+    val parent = Option.map (apfst (map prep_inst) o prep_raw_parent thy) raw_parent
       handle ERROR msg => cat_error msg ("The error(s) above in parent record specification");
     val parents = add_parents thy parent [];
 
@@ -2193,7 +2189,7 @@
     (* fields *)
 
     fun prep_field (env, (c, raw_T, mx)) =
-      let val (env', T) = prep_typ sign (env, raw_T) handle ERROR msg =>
+      let val (env', T) = prep_typ thy (env, raw_T) handle ERROR msg =>
         cat_error msg ("The error(s) above occured in field " ^ quote c)
       in (env', (c, T, mx)) end;
 
@@ -2203,13 +2199,13 @@
 
     (* args *)
 
-    val defaultS = Sign.defaultS sign;
+    val defaultS = Sign.defaultS thy;
     val args = map (fn x => (x, AList.lookup (op =) envir x |> the_default defaultS)) params;
 
 
     (* errors *)
 
-    val name = Sign.full_name sign bname;
+    val name = Sign.full_name thy bname;
     val err_dup_record =
       if is_none (get_record thy name) then []
       else ["Duplicate definition of record " ^ quote name];