- %A#X55.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@@@@@@@G\H\@@FC@@%error@!e@B@@@&Stdlibr&result!a@B@@@@@@@j_k_@@iD@@%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@Fx@@@@@@@@ @@@uu@@I@@$bind@&Stdlibz&result!a@ B@!e@B@@@@@@@@@@&Stdlib{&result!b@ B@@@@@@@@&Stdlib|&result(@@@@@@@@c{ ' 'd{ ' o@@bJ@@$join@&Stdlib~&result&Stdlib}&result!a@B@!e@B@@@@@@@@@&Stdlib&result@@@@@@~  ~  @@K@@#map@@!a@0B@ @@"!b@2B@!@@#@@-@&Stdlib&result!e@4B@$@@@'@@+&Stdlib&result"@@@*@@,@@.@A ? ?A ? y@@L@@'product@&Stdlib&result!a@GB@5!e@KB@6@@@9@@D@&Stdlib&result!b@IB@:@@@=@@B&Stdlib&result@.@@@>*@@@A@@C@@E@D  D  @@M@@)map_error @@!e@^B@L@@N!f@`B@M@@O@@Y@&Stdlib&result!a@\B@P@@@S@@W&Stdlib&result#@@@V@@X@@Z@WJ  XJ  @@VN@@$fold!"ok@!a@rB@a@@c!c@tB@b@@d@@o%error@!e@vB@e@@f@@g@@m@&Stdlib&result(@@@j@@k$@@l@@n@@p@N X XN X @@O@@'retract"@&Stdlib&result!a@~B@w@@@z@@{@@|@R  R  @@P@@$iter#@@!a@B@@@$unit@@@@@@@@&Stdlib&result!e@B@@@@@@@@@@@@@@W j jW j @@Q@@*iter_error$@@!e@B@@@6@@@@@@@@&Stdlib&result!a@B@@@@@@O@@@@@@@@Z  Z @@R@@%is_ok%@&Stdlib&result!a@B@!e@B@@@@@@$bool@@@@@@E_F_@@DS@@(is_error&@&Stdlib&result!a@B@!e@B@@@@@@)@@@@@@mbnb@@lT@@%equal'"ok@!a@B@@@@ @@K@@@@@@@@@%error@!e@B@@@@ @@d@@@@@@@@@@&Stdlib&result4@@@@@@&Stdlib&resultB*@@@@@@@@@@@@@@@@@eSSg@@U@@'compare("ok@!a@B@@@@ @@#int@@@@@@@@@%error@!e@B@@@@ @@@@@@@@@@@@&Stdlib&result5@@@@@@&Stdlib&resultC*@@@@@;@@@@@@@@@@@@&lcc'n@@%V@@)to_option)@&Stdlib&result!a@ B@!e@ B@@@@@@&optionL@@@@@@PuQu@@OW@@'to_list*@&Stdlib&result!a@ B@ !e@ B@ @@@ @@ $list@@@ @@ @zyRR{yRz@@yX@@&to_seqj@&Stdlib&result!a@ B@ !e@ B@ @@@ @@ &Stdlib#Seq!t@@@ @@ @||@@Y@@ӱ&SyntaxoB@$let*k@&Stdlib&result!a@ C@ !e@ C@ @@@ @@ @@@@ &Stdlib&result!b@ C@ @@@ @@ @@ &Stdlib&result(@@@ @@ @@ @5@@Z@@$and*l@&Stdlib&result!a@ C@ !e@ C@ @@@ @@ @&Stdlib&result!b@ C@ @@@ @@ &Stdlib&result@.@@@ *@@@ @@ @@ @:^`;^@@9[@@$let+m@&Stdlib&result!a@ C@ Ƞ!e@ C@ @@@ @@ @@@@ !b@ C@ @@ @@ &Stdlib&result@@@ @@ @@ @uv@@t\@@$and+n@&Stdlib&result!a@ C@ ݠ!e@ C@ @@@ @@ @&Stdlib&result!b@ C@ @@@ @@ &Stdlib&result@.@@@ *@@@ @@ @@ @>@>@@]@@@@@^@@@@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@@@@@@@@A@@@)Result.ok3$ok v$ is $Ok v!.@@@@@@@@@@@@@ @@@@ՠ,Result.error3'error e$ is 'Error e!.@@@@@@@@@@@@@@@@@ʠ,Result.value30value r ~default$ is !v$ if !r$ is $Ok v% and 'default+ otherwise.@@@@@@@@@@@@@C@@@@@Π-Result.get_ok3(get_ok r$ is !v$ if !r$ is $Ok v5 and raise otherwise.@@@@@@@@0Invalid_argument#if !r$ is 'Error _!.@@@@@@|@@@@᠕.Result.get_ok'3'get_ok') is like BD@ = but in case of error uses the error message for raising 0Invalid_argument!.@@@@#5.4@@@@@@@@@@@@ޠ0Result.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 _!.@@@@@@@@@@@@/@@0@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.Syntax͐3 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@!.@@@@@@@@@@@@@@@@@@2Result.Syntax.let+3(( let+ )$ is 5D@!.@@@@@@@@@@@@@@w@@@@c2Result.Syntax.and+3(( and+ )$ is D@!.@@@@@@@@@@@@m@n@W@@@@7@@54@@@@@@@*@@A#Seq@@@@@