
diff -r b1247c98abb8 -r fcacca9588b4 QuotMain.thy
--- a/QuotMain.thy	Sat Oct 24 17:29:20 2009 +0200
+++ b/QuotMain.thy	Sat Oct 24 18:17:38 2009 +0200
@@ -243,6 +243,7 @@
 end
 *}
 
+
 text {* produces the definition for a lifted constant *}
 
 ML {*
@@ -258,11 +259,12 @@
   val rep_fns = map (fst o get_fun repF rty qty lthy) arg_tys
   val abs_fn  = (fst o get_fun absF rty qty lthy) res_ty
 
+  fun mk_fun_map (t1,t2) = Const (@{const_name "fun_map"}, dummyT) $ t1 $ t2
+
+  val fns = Library.foldr (mk_fun_map) (rep_fns, abs_fn)
+            |> Syntax.check_term lthy
 in
-  map (op $) (rep_fns ~~ fresh_args)
-  |> curry list_comb oconst
-  |> curry (op $) abs_fn
-  |> fold_rev lambda fresh_args
+  fns $ oconst
 end
 *}
 




