\begin{xple}
\emph{interface} RefDB
(* interface for a modul to manage a cross reference database *)
\emph{import} :Source  iter
\emph{export}
        ext :String

        \emph{Let} RT = \emph{Tuple} pos1 :Source.Position  pos2 :Source.Position \emph{end}

        T $<$:\emph{Ok}
        (* type *))

        create(path :String) :T
        (* create a database saved at path `path' *)

        clear(:T) :\emph{Ok}
        (* reset a database *)
        
        writeToFile(:T) :\emph{Ok}
        (* save a database *)
        
        readFromFile(path :String) :T
        (* load a database from file at path `path' *)

        clearPart(:T  path :String) :\emph{Ok}
        (* delete all references to database at path `path' *)

        dependents(:T) :iter.T(String)
        (* get list of depending databases *)

        addToCurrent(:T :RT) :\emph{Ok}
        (* add a reference to a database)

        queryPos(pos :Source.Position) :iter.T(Source.Position)
        (* get a list of all positions referencing position `pos' *)

        getPos(:T) :iter.T(RT)
        (* get a list of all referenced positions of a database *)

\emph{end};
\end{xple}
%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "quas"
%%% End: 
