- let f = function
- | _, _, Y.Abbr v when delta ->
- P.add ~gdelta:1 (); step f ~delta ~rt m v
- | _, _, Y.Abst w when rt ->
- P.add ~grt:1 (); step f ~delta ~rt m w
- | a, _, Y.Abbr v ->
- let f e = f m (Some (e, B.Abbr (a, v))) x in
- Y.apix C.err f a
- | a, _, Y.Abst w ->
- let f e = f m (Some (e, B.Abst (a, w))) x in
- Y.apix C.err f a
- in
- E.get_entity C.err f uri
+ begin match E.get_entity uri with
+ | _, _, Y.Abbr v when st.Y.delta ->
+ P.add ~gdelta:1 (); step st m v
+ | _, _, Y.Abst w when st.Y.rt ->
+ P.add ~grt:1 (); step st m w
+ | a, _, Y.Abbr v ->
+ let e = Y.apix C.err C.start a in
+ m, Some (e, B.Abbr (a, v)), x
+ | a, _, Y.Abst w ->
+ let e = Y.apix C.err C.start a in
+ m, Some (e, B.Abst (a, w)), x
+ | _, _, Y.Void -> assert false
+ end