--- a/src/HOL/Tools/BNF/bnf_fp_n2m_sugar.ML Tue Sep 09 22:33:43 2014 +0200
+++ b/src/HOL/Tools/BNF/bnf_fp_n2m_sugar.ML Tue Sep 09 23:54:39 2014 +0200
@@ -180,8 +180,10 @@
if T = fpT andalso kk' <> kk then
mutual_self_call (nth callers kk)
(the (find_first (not o null o get_indices callers) calls))
+ else if T = nth fpTs kk' then
+ nth Xs kk'
else
- nth Xs kk'
+ freeze_fpTs_type_based_default T
| _ => incompatible_calls calls);
fun freeze_fpTs_map kk (fpT as Type (_, Ts')) (callss, (live_call :: _, dead_calls))