(* we also need a pretty-printer, which works the same as interp *)
(* but removes trailing Unit's *)

(* Specifications: *)
Lemma pp_interp i ts : pprint i ts = interp i ts.
Lemma varP i n u ts :
has (var n) ts -> onth (varx i) n = Some u ->
interp i ts = u \+ interp i (vfree n ts).