signature PARSER =
sig
structure Lexer : LEXER
datatype sigs = Sigs of sigdecl list
and sigdecl = Sigdecl of string * sigexp
and sigexp = SigexpSpec of spec
and spec = SpecVal of string * idfseq
and typedesc = Typedesc of idfseq * idfseq option
and datadesc = Datadesc of (idfseq * idfseq) list
and idfseq = Idfseq of string list
type documentation = (string * string) list
exception Error of string
val parse : Lexer.token MStream.stream -> sigs * documentation
val toString : sigs -> string