123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081exceptionValue_errorofstringletkeys=function|`Oassoc->Ok(List.mapfstassoc)|_->Error(`Msg"Failed to get keys from non-object value")letkeys_exn=function|`Oassoc->List.mapfstassoc|_->raise(Value_error"Failed to get keys from non-object value")letvalues=function|`Oassoc->Ok(List.mapsndassoc)|_->Error(`Msg"Failed to get values from non-object value")letvalues_exn=function|`Oassoc->List.mapsndassoc|_->raise(Value_error"Failed to get values from non-object value")letcombineab=match(a,b)with|`Oa,`Ob->Ok(`O(a@b))|_->Error(`Msg"Expected two objects")letcombine_exnab=match(a,b)with|`Oa,`Ob->`O(a@b)|_->raise(Value_error"Expected two objects")letfinds=function|`Oassoc->Ok(List.assoc_optsassoc)|_->Error(`Msg"Expected an object")letfind_exns=function|`Oassoc->List.assoc_optsassoc|_->raise(Value_error"Expected an object")letmapf=function|`Alst->Ok(`A(List.mapflst))|_->Error(`Msg"Expected a value array")letmap_exnf=function|`Alst->`A(List.mapflst)|_->raise(Value_error"Expected a value array")letfilterp=function|`Alst->Ok(`A(List.filterplst))|_->Error(`Msg"Expected a value array")letfilter_exnp=function|`Alst->`A(List.filterplst)|_->raise(Value_error"Expected a value array")letto_string=function|`Strings->Oks|_->Error(`Msg"Expected a string value")letto_string_exn=function|`Strings->s|_->raise(Value_error"Expected a string value")letto_bool=function|`Boolb->Okb|_->Error(`Msg"Expected a bool value")letto_bool_exn=function|`Boolb->b|_->raise(Value_error"Expected a bool value")letto_float=function|`Floatf->Okf|_->Error(`Msg"Expected a float value")letto_float_exn=function|`Floatf->f|_->raise(Value_error"Expected a float value")letstrings=`Stringsletboolb=`Boolbletfloatf=`Floatfletlistflst=`A(List.mapflst)letobjassoc=`Oassoc