12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152moduleLexeme=Transept_genlex.LexememoduleGenlex=Transept_genlex.Lexerletkeywords=["{";"}";"[";"]";",";":";"null";"true";"false"]moduleMake(Parser:Transept_specs.PARSERwithtypee=Lexeme.t)=structopenGenlex.Token(Parser)openTransept_utils.UtilsopenJsonopenParserletnull=kwd"null"<$>constantNullletbool=kwd"true"<$>constant@@Booltrue<|>(kwd"false"<$>constant@@Boolfalse)(** Unable to use GADT *)letstringValue=string<$>(functionLexeme.Strings->s|_->failwith"Impossible")letstring=stringValue<$>(functions->Strings)(** Unable to use GADT *)letnumber=float<$>(functionLexeme.Floatf->Numberf|_->failwith"Impossible")letrecarray()=letitem=do_lazyjsoninkwd"["&>opt(item<&>optrep(kwd","&>item))<&kwd"]"<$>(functionNone->[]|Some(e,l)->e::l)<$>(funr->Arrayr)andrecord()=letitem=do_lazyjsoninletattribute=stringValue<&kwd":"<&>iteminkwd"{"&>opt(attribute<&>optrep(kwd","&>attribute))<&kwd"}"<$>(functionNone->[]|Some(e,l)->e::l)<$>(funl->Recordl)andjson()=null<|>bool<|>do_lazyrecord<|>do_lazyarray<|>string<|>numberletparse=json()<&eosend