module X = Library
module D = Drg
+(* this is not tail recursive *)
let rec list_iter map l f = match l with
| [] -> f
| hd :: tl -> map hd (list_iter map tl f)
| D.EBind (lenv, a, b) -> lenv_iter map1 map2 lenv (map1 a b f)
| D.EProj (lenv, a, e) -> lenv_iter map1 map2 lenv (map2 a e f)
+(* these are not tail recursive *)
let rec exp_term t f = match t with
| D.TSort (a, h) ->
let attrs = [X.position h; X.name a] in