src/Pure/context.ML
changeset 26957 e3f04fdd994d
parent 26889 ccea41fb5c39
child 27341 97e2ccba3b64
--- a/src/Pure/context.ML	Sun May 18 17:03:16 2008 +0200
+++ b/src/Pure/context.ML	Sun May 18 17:03:20 2008 +0200
@@ -23,7 +23,6 @@
   val ancestors_of: theory -> theory list
   val is_stale: theory -> bool
   val PureN: string
-  val CPureN: string
   val is_draft: theory -> bool
   val exists_name: string -> theory -> bool
   val names_of: theory -> string list
@@ -197,7 +196,6 @@
 (* names *)
 
 val PureN = "Pure";
-val CPureN = "CPure";
 
 val draftN = "#";
 fun draft_id (_, name) = (name = draftN);
@@ -340,18 +338,15 @@
 (* named theory nodes *)
 
 fun merge_thys pp (thy1, thy2) =
-  if exists_name CPureN thy1 <> exists_name CPureN thy2 then
-    error "Cannot merge Pure and CPure developments"
-  else
-    let
-      val (ids, iids) = check_merge thy1 thy2;
-      val data = merge_data (pp thy1) (data_of thy1, data_of thy2);
-      val ancestry = make_ancestry [] [];
-      val history = make_history "" 0 [];
-      val thy' = NAMED_CRITICAL "theory" (fn () =>
-       (check_thy thy1; check_thy thy2;
-        create_thy draftN NONE (serial (), draftN) ids iids data ancestry history))
-    in thy' end;
+  let
+    val (ids, iids) = check_merge thy1 thy2;
+    val data = merge_data (pp thy1) (data_of thy1, data_of thy2);
+    val ancestry = make_ancestry [] [];
+    val history = make_history "" 0 [];
+    val thy' = NAMED_CRITICAL "theory" (fn () =>
+     (check_thy thy1; check_thy thy2;
+      create_thy draftN NONE (serial (), draftN) ids iids data ancestry history))
+  in thy' end;
 
 fun maximal_thys thys =
   thys |> filter (fn thy => not (exists (fn thy' => proper_subthy (thy, thy')) thys));