(* ||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 L = List module U = NUri module C = Cps module E = Entity module G = Options type csys = { uri: E.uri; mutable is : int list } let mark a = E.mark C.err C.start a (* interface functions ******************************************************) let init () = { uri = U.uri_of_string (G.get_baseuri ()); is = []; } let add_infinite s a = if !G.si && !G.cc then let i = abs (mark a) in if L.mem i s.is then () else s.is <- i :: s.is else ()