-let xlate_entry f = function
- | _, pars, uri, u, None ->
- let f u = f (uri, B.Abst, u) in
- let f pars = map_fold_left f xlate_term map_pars u pars in
- Cps.list_rev_map f xlate_pars pars
- | _, pars, uri, u, Some (_, t) ->
- let f u t = f (uri, B.Abbr, (B.Cast (u, t))) in
- let f pars u = map_fold_left (f u) xlate_term map_pars t pars in
- let f pars = map_fold_left (f pars) xlate_term map_pars u pars in
- Cps.list_rev_map f xlate_pars pars
+let unwind_to_xlate_term f c t =
+ let map f t b = f (B.bind b t) in
+ let f t = B.fold_left f map t c in
+ xlate_term c f t