--- /dev/null
+(*
+ ||M|| This file is part of HELM, an Hypertextual, Electronic
+ ||A|| Library of Mathematics, developed at the Computer Science
+ ||T|| Department, University of Bologna, Italy.
+ ||I||
+ ||T|| HELM is free software; you can redistribute it and/or
+ ||A|| modify it under the terms of the GNU General Public License
+ \ / version 2 or (at your option) any later version.
+ \ / This software is distributed as is, NO WARRANTY.
+ V_______________________________________________________________ *)
+
+module U = NUri
+module L = Log
+module E = Entity
+module Z = Bag
+module ZE = BagEnvironment
+module ZT = BagType
+
+(* Interface functions ******************************************************)
+
+(* to share *)
+let type_check f st = function
+ | a, uri, E.Abst (n, t) ->
+ let f xt tt = ZE.set_entity (f tt) (a, uri, E.Abst (n, xt)) in
+ L.loc := U.string_of_uri uri; ZT.type_of f st Z.empty_lenv t
+ | a, uri, E.Abbr t ->
+ let f xt tt = ZE.set_entity (f tt) (a, uri, E.Abbr xt) in
+ L.loc := U.string_of_uri uri; ZT.type_of f st Z.empty_lenv t
+ | _, _, E.Void -> assert false