src/Pure/type.ML
changeset 56139 b7add947a6ef
parent 56056 4d46d53566e6
child 58942 97f0ba373b1a
equal deleted inserted replaced
56138:f42de6d8ed8e 56139:b7add947a6ef
    24    {classes: Name_Space.T * Sorts.algebra,
    24    {classes: Name_Space.T * Sorts.algebra,
    25     default: sort,
    25     default: sort,
    26     types: decl Name_Space.table,
    26     types: decl Name_Space.table,
    27     log_types: string list}
    27     log_types: string list}
    28   val change_base: bool -> tsig -> tsig
    28   val change_base: bool -> tsig -> tsig
       
    29   val change_ignore: tsig -> tsig
    29   val empty_tsig: tsig
    30   val empty_tsig: tsig
    30   val class_space: tsig -> Name_Space.T
    31   val class_space: tsig -> Name_Space.T
    31   val class_alias: Name_Space.naming -> binding -> string -> tsig -> tsig
    32   val class_alias: Name_Space.naming -> binding -> string -> tsig -> tsig
    32   val defaultS: tsig -> sort
    33   val defaultS: tsig -> sort
    33   val logical_types: tsig -> string list
    34   val logical_types: tsig -> string list
   178   TSig {classes = classes, default = default, types = types, log_types = log_types};
   179   TSig {classes = classes, default = default, types = types, log_types = log_types};
   179 
   180 
   180 fun change_base begin (TSig {classes, default, types, log_types}) =
   181 fun change_base begin (TSig {classes, default, types, log_types}) =
   181   make_tsig (classes, default, Name_Space.change_base begin types, log_types);
   182   make_tsig (classes, default, Name_Space.change_base begin types, log_types);
   182 
   183 
       
   184 fun change_ignore (TSig {classes, default, types, log_types}) =
       
   185   make_tsig (classes, default, Name_Space.change_ignore types, log_types);
       
   186 
   183 fun build_tsig (classes, default, types) =
   187 fun build_tsig (classes, default, types) =
   184   let
   188   let
   185     val log_types =
   189     val log_types =
   186       Name_Space.fold_table (fn (c, LogicalType n) => cons (c, n) | _ => I) types []
   190       Name_Space.fold_table (fn (c, LogicalType n) => cons (c, n) | _ => I) types []
   187       |> Library.sort (int_ord o pairself snd) |> map fst;
   191       |> Library.sort (int_ord o pairself snd) |> map fst;