- let f ww =
- let a = [E.Name (name, true)] in
- let f tt =
- let b = D.Abst (N.infinite, ww) in
- f (D.TBind (a, b, tt))
+ let name = if !G.alpha <> "" then alpha name else name in
+ let f dw ww =
+ let a = E.node_attrs ~name:(name, true) () in
+ let f dt tt =
+(* let a = {a with E.n_degr = dt} in *)
+ let l = if !G.cc then match y, dt with
+ | true, _ -> N.one
+ | _ , 0 -> N.one
+ | _ , 1 -> N.unknown st.S.lenv
+ | _ , 2 -> N.two
+ | _ -> assert false
+ else N.infinite
+ in
+ let b = D.Abst (l, ww) in
+ f dt (D.TBind (a, b, tt))