signature PARSER = sig structure P: PPC type parseCtx type def val createParseCtx: string -> string list -> parseCtx val parseDef: parseCtx -> (def * parseCtx) option val printDef: def -> unit end