- L.loc := U.string_of_uri uri; BT.type_of err f st BR.empty_kam t
- | _, _, E.Void -> assert false
+ BT.type_of err f st BR.empty_rtm t
+ | _, _, _, E.Void -> assert false
+
+END
+
+let validate err f st e =
+IFDEF PROFV THEN
+ Y.utime_lap ""
+ELSE () END;
+ let uri, t = match e with
+ | _, _, uri, E.Abst (_, t) -> uri, t
+ | _, _, uri, E.Abbr (_, t) -> uri, t
+ | _, _, _, E.Void -> assert false
+ in
+ let err msg = err (L.Uri uri :: msg) in
+ let f () =
+ let _ = BE.set_entity e in
+IFDEF PROFV THEN
+ if !G.si then () else Y.utime_lap "validated"
+ELSE () END;
+ f ()
+ in
+ BV.validate err f st BR.empty_rtm t