--- a/src/Tools/Code/code_ml.ML Mon Dec 13 10:15:27 2010 +0100
+++ b/src/Tools/Code/code_ml.ML Mon Dec 13 22:54:47 2010 +0100
@@ -80,16 +80,18 @@
| print_classrels fxy [classrel] ps = brackify fxy [(str o deresolve) classrel, brackify BR ps]
| print_classrels fxy classrels ps =
brackify fxy [enum " o" "(" ")" (map (str o deresolve) classrels), brackify BR ps]
- fun print_dict is_pseudo_fun fxy (Dict_Const (classrels, (inst, dss))) =
- print_classrels fxy classrels ((str o deresolve) inst ::
+ fun print_dict is_pseudo_fun fxy (Dict (classrels, x)) =
+ print_classrels fxy classrels (print_plain_dict is_pseudo_fun fxy x)
+ and print_plain_dict is_pseudo_fun fxy (Dict_Const (inst, dss)) =
+ ((str o deresolve) inst ::
(if is_pseudo_fun inst then [str "()"]
else map_filter (print_dicts is_pseudo_fun BR) dss))
- | print_dict is_pseudo_fun fxy (Dict_Var (classrels, (v, (i, k)))) =
- print_classrels fxy classrels [str (if k = 1 then first_upper v ^ "_"
+ | print_plain_dict is_pseudo_fun fxy (Dict_Var (v, (i, k))) =
+ [str (if k = 1 then first_upper v ^ "_"
else first_upper v ^ string_of_int (i+1) ^ "_")]
and print_dicts is_pseudo_fun = tuplify (print_dict is_pseudo_fun);
val print_dict_args = map_filter (fn (v, sort) => print_dicts (K false) BR
- (map_index (fn (i, _) => Dict_Var ([], (v, (i, length sort)))) sort));
+ (map_index (fn (i, _) => Dict ([], Dict_Var (v, (i, length sort)))) sort));
fun print_term is_pseudo_fun some_thm vars fxy (IConst c) =
print_app is_pseudo_fun some_thm vars fxy (c, [])
| print_term is_pseudo_fun some_thm vars fxy (IVar NONE) =
@@ -219,7 +221,7 @@
concat [
(str o Long_Name.base_name o deresolve) classrel,
str "=",
- print_dict is_pseudo_fun NOBR (Dict_Const ([], x))
+ print_dict is_pseudo_fun NOBR (Dict ([], Dict_Const x))
];
fun print_classparam_instance ((classparam, const), (thm, _)) =
concat [
@@ -380,18 +382,19 @@
fun print_dicttypscheme (vs, class_ty) = print_typscheme_prefix (vs, print_dicttyp class_ty);
val print_classrels =
fold_rev (fn classrel => fn p => Pretty.block [p, str ".", (str o deresolve) classrel])
- fun print_dict is_pseudo_fun fxy (Dict_Const (classrels, (inst, dss))) =
+ fun print_dict is_pseudo_fun fxy (Dict (classrels, x)) =
+ print_plain_dict is_pseudo_fun fxy x
+ |> print_classrels classrels
+ and print_plain_dict is_pseudo_fun fxy (Dict_Const (inst, dss)) =
brackify BR ((str o deresolve) inst ::
(if is_pseudo_fun inst then [str "()"]
else map_filter (print_dicts is_pseudo_fun BR) dss))
- |> print_classrels classrels
- | print_dict is_pseudo_fun fxy (Dict_Var (classrels, (v, (i, k)))) =
+ | print_plain_dict is_pseudo_fun fxy (Dict_Var (v, (i, k))) =
str (if k = 1 then "_" ^ first_upper v
else "_" ^ first_upper v ^ string_of_int (i+1))
- |> print_classrels classrels
and print_dicts is_pseudo_fun = tuplify (print_dict is_pseudo_fun);
val print_dict_args = map_filter (fn (v, sort) => print_dicts (K false) BR
- (map_index (fn (i, _) => Dict_Var ([], (v, (i, length sort)))) sort));
+ (map_index (fn (i, _) => Dict ([], Dict_Var (v, (i, length sort)))) sort));
fun print_term is_pseudo_fun some_thm vars fxy (IConst c) =
print_app is_pseudo_fun some_thm vars fxy (c, [])
| print_term is_pseudo_fun some_thm vars fxy (IVar NONE) =
@@ -556,7 +559,7 @@
concat [
(str o deresolve) classrel,
str "=",
- print_dict is_pseudo_fun NOBR (Dict_Const ([], x))
+ print_dict is_pseudo_fun NOBR (Dict ([], Dict_Const x))
];
fun print_classparam_instance ((classparam, const), (thm, _)) =
concat [