1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950openHash.BuiltinopenPpx_compare_lib.BuiltinincludeSexplib0.Sexp(** Type of S-expressions *)typet=Sexplib0.Sexp.t=|Atomofstring|Listoftlist[@@deriving_inlinecompare,hash]letreccompare=(funa__001_b__002_->ifPpx_compare_lib.phys_equala__001_b__002_then0else(matcha__001_,b__002_with|Atom_a__003_,Atom_b__004_->compare_string_a__003__b__004_|Atom_,_->-1|_,Atom_->1|List_a__005_,List_b__006_->compare_listcompare_a__005__b__006_):t->t->int);;letrec(hash_fold_t:Ppx_hash_lib.Std.Hash.state->t->Ppx_hash_lib.Std.Hash.state)=(funhsvarg->matchargwith|Atom_a0->lethsv=Ppx_hash_lib.Std.Hash.fold_inthsv0inlethsv=hsvinhash_fold_stringhsv_a0|List_a0->lethsv=Ppx_hash_lib.Std.Hash.fold_inthsv1inlethsv=hsvinhash_fold_listhash_fold_thsv_a0:Ppx_hash_lib.Std.Hash.state->t->Ppx_hash_lib.Std.Hash.state)and(hash:t->Ppx_hash_lib.Std.Hash.hash_value)=letfuncarg=Ppx_hash_lib.Std.Hash.get_hash_value(lethsv=Ppx_hash_lib.Std.Hash.create()inhash_fold_thsvarg)infunx->funcx;;[@@@end]lett_sexp_grammar=Sexplib0.Sexp_conv.sexp_t_sexp_grammarletof_string=()letinvariant(_:t)=()