1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283(* SPDX-License-Identifier: MIT *)(* Copyright (C) 2023-2026 formalsec *)(* Written by the Smtml programmers *)includePreludemoduleString=structincludeStringlethashx=String_hash.seeded_hash0xendmoduleInt32=structincludeInt32(* As they are defined in the stdlib *)lethashx=Hashtbl.seeded_hash_param101000xendmoduleInt64=structincludeInt64(* As they are defined in the stdlib *)lethashx=Hashtbl.seeded_hash_param101000xendmoduleOption=structincludeOptionmoduleSyntax=structlet(let*)vf=bindvflet(let+)vf=mapfvendendmoduleResult=structincludeResultmoduleSyntax=structlet(let*)vf=Result.bindvflet(let+)vf=Result.mapfvlet(>>=)=Result.bindlet(>>|)rf=Result.mapfrendletreclist_iterf=letopenSyntaxinfunction|[]->Ok()|hd::tl->let*()=fhdinlist_iterftlletlist_mapfv=letopenSyntaxinletreclist_map_cpsfvk=matchvwith|[]->k(Ok[])|hd::tl->list_map_cpsftl(funrest->let*restinlet*hd'=fhdink(Ok(hd'::rest)))inlist_map_cpsfvFun.idletlist_filter_mapfv=letopen Syntaxinletreclist_filter_map_cpsfvk=matchvwith|[]->k(Ok[])|hd::tl->list_filter_map_cpsftl(funrest->let*restinlet*v=fhdink(Ok(matchvwithNone->rest|Somev->v::rest)))inlist_filter_map_cpsfvFun.idend