(* Through defunctionalization, the intermediate language [Tail] is translated
down to the next intermediate language, [Top]. *)
val defun_term: Tail.term -> Top.program