+ G
+ else
+ Tycheck.checkFile G (tInit ()) prog
+ end
+
+fun basis () =
+ let
+ val dir = Posix.FileSys.opendir Config.libRoot
+
+ fun loop files =
+ case Posix.FileSys.readdir dir of
+ NONE => (Posix.FileSys.closedir dir;
+ files)
+ | SOME fname =>
+ if String.isSuffix ".dtl" fname then
+ loop (OS.Path.joinDirFile {dir = Config.libRoot,
+ file = fname}
+ :: files)
+ else
+ loop files
+
+ val files = loop []
+ val files = Order.order files
+ in
+ if !ErrorMsg.anyErrors then
+ Env.empty
+ else
+ foldl (fn (fname, G) => check' G fname) Env.empty files
+ end
+
+fun check fname =
+ let
+ val _ = ErrorMsg.reset ()
+ val _ = Env.preTycheck ()
+
+ val b = basis ()
+ in
+ if !ErrorMsg.anyErrors then
+ (b, NONE)