-let exp_entry c frm = function
- | _, u, B.Abst (a, w) ->
- let str = U.string_of_uri u in
- let a = B.Name (true, U.name_of_uri u) :: a in
- F.fprintf frm "<ABST uri=%S%a>%a</ABST>" str id a (exp_boxed c) w
- | _, u, B.Abbr (a, v) ->
- let str = U.string_of_uri u in
- let a = B.Name (true, U.name_of_uri u) :: a in
- F.fprintf frm "<ABBR uri=%S%a>%a</ABBR>" str id a (exp_boxed c) v
- | _, u, B.Void a ->
- let str = U.string_of_uri u in
- let a = B.Name (true, U.name_of_uri u) :: a in
- F.fprintf frm "<VOID uri=%S%a/>" str id a
+and exp_bind e a b out tab = match b with
+ | B.Abst w ->
+ let attrs = [X.name a; X.mark a] in
+ X.tag X.abst attrs ~contents:(exp_term e w) out tab
+ | B.Abbr v ->
+ let attrs = [X.name a; X.mark a] in
+ X.tag X.abbr attrs ~contents:(exp_term e v) out tab
+ | B.Void ->
+ let attrs = [X.name a; X.mark a] in
+ X.tag X.void attrs out tab