src/Pure/General/name_space.ML
changeset 59884 bbf49d7dfd6f
parent 59883 12a89103cae6
child 59885 3470a265d404
--- a/src/Pure/General/name_space.ML	Tue Mar 31 20:07:37 2015 +0200
+++ b/src/Pure/General/name_space.ML	Tue Mar 31 20:18:10 2015 +0200
@@ -62,6 +62,7 @@
     xstring * Position.T list -> (string * Position.report list) * 'a
   val check: Context.generic -> 'a table -> xstring * Position.T -> string * 'a
   val defined: 'a table -> string -> bool
+  val lookup: 'a table -> string -> 'a option
   val lookup_key: 'a table -> string -> (string * 'a) option
   val get: 'a table -> string -> 'a
   val define: Context.generic -> bool -> binding * 'a -> 'a table -> string * 'a table
@@ -162,9 +163,9 @@
 fun is_concealed space name = #concealed (the_entry space name);
 
 
-(* name accesses *)
+(* intern *)
 
-fun lookup (Name_Space {internals, ...}) xname =
+fun intern' (Name_Space {internals, ...}) xname =
   (case Change_Table.lookup internals xname of
     NONE => (xname, true)
   | SOME ([], []) => (xname, true)
@@ -172,6 +173,8 @@
   | SOME (name :: _, _) => (name, false)
   | SOME ([], name' :: _) => (Long_Name.hidden name', true));
 
+val intern = #1 oo intern';
+
 fun get_accesses (Name_Space {entries, ...}) name =
   (case Change_Table.lookup entries name of
     NONE => [name]
@@ -182,11 +185,6 @@
     if not (null names) andalso hd names = name then cons xname else I) internals [];
 
 
-(* intern *)
-
-fun intern space xname = #1 (lookup space xname);
-
-
 (* extern *)
 
 val names_long_raw = Config.declare_option ("names_long", @{here});
@@ -205,7 +203,7 @@
     val names_unique = Config.get ctxt names_unique;
 
     fun valid require_unique xname =
-      let val (name', is_unique) = lookup space xname
+      let val (name', is_unique) = intern' space xname
       in name = name' andalso (not require_unique orelse is_unique) end;
 
     fun ext [] = if valid false name then name else Long_Name.hidden name
@@ -496,6 +494,7 @@
   in (name, x) end;
 
 fun defined (Table (_, tab)) name = Change_Table.defined tab name;
+fun lookup (Table (_, tab)) name = Change_Table.lookup tab name;
 fun lookup_key (Table (_, tab)) name = Change_Table.lookup_key tab name;
 
 fun get table name =