src/Pure/type.ML
changeset 21858 05f57309170c
parent 21116 be58cded79da
child 21934 ba683b0b2456
equal deleted inserted replaced
21857:f9d085c2625c 21858:05f57309170c
   533 fun the_decl (_, types) = fst o the o Symtab.lookup types;
   533 fun the_decl (_, types) = fst o the o Symtab.lookup types;
   534 
   534 
   535 fun map_types f = map_tsig (fn (classes, default, types) =>
   535 fun map_types f = map_tsig (fn (classes, default, types) =>
   536   let
   536   let
   537     val (space', tab') = f types;
   537     val (space', tab') = f types;
   538     val _ = assert (NameSpace.intern space' "dummy" = "dummy") "Illegal declaration of dummy type";
   538     val _ = NameSpace.intern space' "dummy" = "dummy" orelse
       
   539       error "Illegal declaration of dummy type";
   539   in (classes, default, (space', tab')) end);
   540   in (classes, default, (space', tab')) end);
   540 
   541 
   541 fun syntactic types (Type (c, Ts)) =
   542 fun syntactic types (Type (c, Ts)) =
   542       (case Symtab.lookup types c of SOME (Nonterminal, _) => true | _ => false)
   543       (case Symtab.lookup types c of SOME (Nonterminal, _) => true | _ => false)
   543         orelse exists (syntactic types) Ts
   544         orelse exists (syntactic types) Ts