equal
deleted
inserted
replaced
465 val (u', Ts'') = replace_types u Ts'; |
465 val (u', Ts'') = replace_types u Ts'; |
466 in (t' $ u', Ts'') end; |
466 in (t' $ u', Ts'') end; |
467 |
467 |
468 fun burrow_types f ts = |
468 fun burrow_types f ts = |
469 let |
469 let |
470 val Ts = rev (fold (fold_types cons) ts []); |
470 val Ts = rev ((fold o fold_types) cons ts []); |
471 val Ts' = f Ts; |
471 val Ts' = f Ts; |
472 val (ts', []) = fold_map replace_types ts Ts'; |
472 val (ts', []) = fold_map replace_types ts Ts'; |
473 in ts' end; |
473 in ts' end; |
474 |
474 |
475 (*collect variables*) |
475 (*collect variables*) |