| Abstract(bound_ident, body) ->
(* find a fresh variable unused in either body or replacement (which we hack by specifying their App) *)
let bound_ident' = fresh_var bound_ident (App(body,replacement))
| Abstract(bound_ident, body) ->
(* find a fresh variable unused in either body or replacement (which we hack by specifying their App) *)
let bound_ident' = fresh_var bound_ident (App(body,replacement))