let boundvar x = "v" ^ string_of_int x in
let varname lev l n =
if n < lev then boundvar (lev-n-1)
- else if n < List.length l then List.nth l (n-lev)
+ else if n - lev < List.length l then List.nth l (n-lev)
else "`" ^ string_of_int (n-lev) in
let rec string_of_term_w_pars lev l = function
| `Var(n,ar) -> varname lev l n ^ (if debug_display_arities then ":" ^ string_of_int ar else "")