* #I!`55.5.0+dev0-2025-04-28/&Result!tA;!a@!e@@B"OkB@@@7../../stdlib/result.mliYAYI@@&ResultA@%ErrorB@@@YJYW@@ B@@@A&Stdlibp&result/B@-B@@@@YY@@@@@@%Y@@@@#@@A@"ok@!a@B@&Stdlibq&result!e@B@@@@@@@E\F\@@DC@@%error@!e@B@&Stdlibr&result!a@B@۠@@@@@@f_g_@@eD@@%value@&Stdlibs&result!a@B@!e@B@@@@'default@@@@@b))b)X@@E@@&get_ok@&Stdlibt&result!a@B@!e@B@@@@@@@ee@@F@@'get_ok'@&Stdlibv&result!a@B@&stringu@@@@@@@@@j::j:a@@G@@)get_error@&Stdlibw&result!a@B@!e@ B@@@@@@@pp @@H@@0error_to_failure@&Stdliby&result!a@B@ Bx@@@ @@@ @@@uu@@ I@@$bind@&Stdlibz&result!a@#B@!e@'B@@@@@@&Stdlib{&result!b@%B@@@@@@&Stdlib|&result$@@@@@ @@!@M{ ' 'N{ ' o@@LJ@@$join@&Stdlib~&result&Stdlib}&result!a@5B@(!e@7B@)@@@,@@@/&Stdlib&result@@@2@@3@~  ~  @@K@@#map@@!a@EB@8!b@GB@9@@:@&Stdlib&result!e@IB@;@@@>&Stdlib&result @@@A@@B@@C@A ? ?A ? y@@L@@'product@&Stdlib&result!a@ZB@J!e@^B@K@@@N@&Stdlib&result!b@\B@O@@@R&Stdlib&result@,@@@S(@@@V@@W@@X@D  D  @@M@@)map_error @@!e@nB@_!f@pB@`@@a@&Stdlib&result!a@lB@b@@@e&Stdlib&result!@@@h@@i@@j@/J  0J  @@.N@@$fold!"ok@!a@}B@q!c@B@r@@s%error@!e@B@t@@u@&Stdlib&result"@@@x@@y@@z@@{@bN X XcN X @@aO@@'retract"@&Stdlib&result!a@B@@@@@@@}R  ~R  @@|P@@$iter#@@!a@B@$unit@@@@@@&Stdlib&result!e@B@@@@@@@@@@@@W j jW j @@Q@@*iter_error$@@!e@B@0@@@@@@&Stdlib&result!a@B@@@@G@@@@@@@@Z  Z @@R@@%is_ok%@&Stdlib&result!a@B@!e@B@@@@$bool@@@@@@__@@S@@(is_error&@&Stdlib&result!a@B@!e@B@@@@'@@@@@@)b*b@@(T@@%equal'"ok@!a@B@@C@@@@@@@%error@!e@B@@V@@@@@@@@&Stdlib&result*@@@@&Stdlib&result6$@@@s@@@@@@@@@@@@ueSSvg@@tU@@'compare("ok@!a@B@@#int@@@@@@@%error@!e@B@@@@@@@@@@&Stdlib&result+@@@@&Stdlib&result7$@@@1@@@@@@@@@@@@lccn@@V@@)to_option)@&Stdlib&result!a@B@!e@B@@@@&optionL@@@@@@uu@@W@@'to_list*@&Stdlib&result!a@B@!e@B@@@@$list@@@@@@yRRyRz@@X@@&to_seqj@&Stdlib&result!a@ -B@!e@ /B@@@@&Stdlib#Seq!t@@@ *@@ +@>|?|@@=Y@@ӱ&SyntaxoB@$let*k@&Stdlib&result!a@ @C@ 0!e@ DC@ 1@@@ 4@@&Stdlib&result!b@ BC@ 5@@@ 8@@ 9&Stdlib&result$@@@ <@@ =@@ >@5@@Z@@$and*l@&Stdlib&result!a@ UC@ E!e@ YC@ F@@@ I@&Stdlib&result!b@ WC@ J@@@ M&Stdlib&result@,@@@ N(@@@ Q@@ R@@ S@^`^@@[@@$let+m@&Stdlib&result!a@ gC@ Z!e@ kC@ [@@@ ^@@!b@ iC@ _@@ `&Stdlib&result@@@ c@@ d@@ e@@@\@@$and+n@&Stdlib&result!a@ |C@ l!e@ C@ m@@@ p@&Stdlib&result!b@ ~C@ q@@@ t&Stdlib&result@,@@@ u(@@@ x@@ y@@ z@>>@?>@@=]@@@@BC@A^@@@@3.Result values.@ Result values handle computation results and errors in an explicit and declarative manner without resorting to exceptions.@@@@$4.08@@@@@@@A7../../stdlib/result.mliA'results'Results@@#(Result.t3 +The type for result values. Either a value $Ok v- or an error 'Error e!.@@@@@@@@@@@@YY@~@@@ut@@@@Ao@_u@@)Result.ok3$ok v$ is $Ok v!.@@@@@@@@@@@@k@ m@@@@Y,Result.error3'error e$ is 'Error e!.@@@@@@@@@@@@c@d@@@@P,Result.value30value r ~default$ is !v$ if !r$ is $Ok v% and 'default+ otherwise.@@@@@@@@@@@@l@Cm@Wh@@@@X-Result.get_ok3(get_ok r$ is !v$ if !r$ is $Ok v5 and raise otherwise.@@@@@@@@0Invalid_argument#if !r$ is 'Error _!.@@@@@@|@@@@m.Result.get_ok'3'get_ok') is like BD@ = but in case of error uses the error message for raising 0Invalid_argument!.@@@@#5.4@@@@@@@@@@@@l0Result.get_error3+get_error r$ is !e$ if !r$ is 'Error e5 and raise otherwise.@@@@@@@@0Invalid_argument#if !r$ is $Ok _!.@@@@@@@@@@7Result.error_to_failure32error_to_failure r$ is !v$ if !r$ is $Ok v, and raises )Failure e( if !r$ is 'Error e!.@@@@#5.4@@@@@@@@ @@@@+Result.bind3(bind r f$ is #f v$ if !r$ is $Ok v% and !r$ if !r$ is 'Error _!.@@@@@@@@@@@@@@@C@@@@+Result.join3'join rr$ is !r$ if "rr$ is $Ok r% and "rr$ if "rr$ is 'Error _!.@@@@@@@@@@@@@y@@@@*Result.map3'map f r$ is (Ok (f v)$ if !r$ is $Ok v% and !r$ if !r$ is 'Error _!.@@@@@@@@@@@@@@@@@@.Result.product3-product r0 r1$ is +Ok (v0, v1)$ if "r0$ is %Ok v0% and "r1$ is %Ok v2 ( and otherwise returns the error of "r0:, if any, or the error of "r1!.@@@@#5.4@@@@@@@@@@@@@0Result.map_error3-map_error f r$ is +Error (f e)$ if !r$ is 'Error e% and !r( if !r$ is $Ok _!.@@@@@@@@@@@@@)@,@@@@+Result.fold31fold ~ok ~error r$ is $ok v$ if !r$ is $Ok v% and 'error e$ if !r( is 'Error e!.@@@@@@@@@@@@@@@h@@@@.Result.retract3)retract r$ is !v$ if !r$ is $Ok v$ or 'Error v!.@@@@#5.4@@@@@@@@@@@@+Result.iter3(iter f r$ is #f v$ if !r$ is $Ok v% and "()+ otherwise.@@@@@@@@@@@@@@@@@@1Result.iter_error3.iter_error f r$ is #f e$ if !r$ is 'Error e% and "()+ otherwise.@@@@@@@@@@@@@@@@@@A%preds:Predicates and comparisons@@,Result.is_ok3'is_ok r$ is $true0 if and only if !r$ is $Ok _!.@@@@@@@@@@@@@@@@@/Result.is_error3*is_error r$ is $true0 if and only if !r$ is 'Error _!.@@@@@@@@@@@@@?@@@@,Result.equal36equal ~ok ~error r0 r13 tests equality of "r0% and "r1' using "ok) and %error + to respectively compare values wrapped by $Ok _) and 'Error _!.@@@@@@@@@@@@@@@{@~@@@@.Result.compare38compare ~ok ~error r0 r10 totally orders "r0% and "r1' using "ok) and %error + to respectively compare values wrapped by %Ok _ % and 'Error _&. $Ok _9 values are smaller than 'Error _( values.@@@@@@@@@@@@@@@@@@@@A'convert*Converting@@0Result.to_option3+to_option r$ is !r7 as an option, mapping $Ok v$ to &Some v) and 'Error _$ to $None!.@@@@@@@@@@@@@@@@@.Result.to_list3)to_list r$ is #[v]$ if !r$ is $Ok v% and "[]+ otherwise.@@@@@@@@@@@@@,@@@@-Result.to_seq3(to_seq r$ is !r0 as a sequence. $Ok v * is the singleton sequence containing !v% and 'Error _7 is the empty sequence.@@@@@@@@@@@@@V@@@@A&syntax&Syntax@@/-Result.Syntax3 8Binding operators. See manual section 12.23 for details.@@@@#5.4@@@@@@@A6Result.Syntax.( let* )3(( let* )$ is nD@!.@@@@@@@@@@@@@@@@@@6Result.Syntax.( and* )3(( and* )$ is D@!.@@@@@@@@@@@@@@@@@@y2Result.Syntax.let+3(( let+ )$ is 5D@!.@@@@@@@@@@@@@@o@@@@_2Result.Syntax.and+3(( and+ )$ is D@!.@@@@@@@@@@@@i@j@U@@@@7@@54@@@@@@@*@@A#Seq@@@@@