uris = []; nodes = 0; xnodes = 0
}
-let rec shift t = function
- | D.ESort -> t
- | D.EBind (e, a, b) -> shift (D.TBind (a, b, t)) e
- | D.EProj (e, a, d) -> shift (D.TProj (a, d, t)) e
-
let rec count_term f c e = function
| D.TSort _ ->
f {c with tsorts = succ c.tsorts; nodes = succ c.nodes}
let f c = count_term f c e t in
C.list_fold_right f (map1 e) vs c
| D.TProj (a, d, t) ->
- count_term f c e (shift t d)
+ count_term f c e (D.tshift d t)
| D.TBind (a, b, t) ->
let f c e = count_term f c e t in
count_binder f c e a b