Caml1999I037jA .Stdlib__Option!t;!a@@A$None@@*option.mliXX@@A@$Some@@ X X@@ B@@@A&optionL @@@Y@@@@@X@@@@-@@A@$none!a@@@@@*[<<+[<P@@?C@@$some@!a@)@@@@@@>^kk?^k@@SD@@%value@9!a@@@@'default  @@@@@VaWa@@kE@@#get@Q!a@@@@@@@jdkd5@@F@@$bind@e!a@@@@@@ r!b@@@@@@{ @@@@@@@@ii@@G@@$join@!a@@@@@@@ @@@@@@l''l'O@@H@@#map@@!a@!b@@@@@@@@@@@@@@@oo@@I@@'product@ʠ!a@@@@@ՠ!b@@@@ޠ@@@@@@@@@@@@r  r X@@J@@$fold$none!a@$some@!b@@@@ @@@@@@@@@@xx @@0K@@$iter@@!a@$unitF@@@@@@$@@@ @@@@@@@@=| o o>| o @@RL@@%blend@@!a@@@@@@@B @@@@I@@@N@@@@@@@@@@c  d  "@@xM@@'for_all@@!a@$boolE@@@@@@l@@@ @@@@@@@@E  E  @@N@@&exists@@!a@"@@@@@@@@@-@@@@@@@@N  N  @@O@@'is_none@!a@@@@E@@@@@@Y  Y  @@P@@'is_some@!a@@@@]@@@@@@\  \  +@@Q@@%equal@@!a@@t@@@@@@@@ޠ@@@@@@@@@@@@@@@@@_ j j_ j @@R@@'compare@@!a@@#intA@@@@@@@@ @@@@@@@@@@@@@@@@@)c@@*c@@@>S@@)to_result$none!e@@,!a@@@@&Stdlib&result @@@@@@@@Oi77Pi7n@@dT@@'to_list@J!a@@@@$listK @@@@@@jmkm@@U@@&to_seq@e!a@@@@:#Seq!t @@@@@@p66p6X@@V@@Ӡ&Syntax@$let*@!a@h@@@g@@ !b@k@@@i@@j @@@l@@m@@n@{Y[{Y@@W@@$and*@!a@r@@@o@!b@q@@@p@@@@s@@@t@@u@@v@~~@@X@@$let+@נ!a@x@@@w@@ !b@z@@y@@@{@@|@@}@%'%Z@@Y@@$and+@!a@@@@~@!b@@@@ @@@@@@@@@@@@'(@@Ty!s+Stdlib__Seq0nwzG&amg.Stdlib__Either0Vy`u~c à&Stdlib0Lku]8_٠8CamlinternalFormatBasics0%FU(Q/Tu@@@Caml1999T037`9?U;C.Stdlib__Option*ocaml.text&_none_@@A l Option values. Option values explicitly indicate the presence or absence of a value. @since 4.08 *option.mliP77T@@@@@@3@@@@@@#intA;@@#intA@@@@@;@A@$charB;@@$charA@@@@@A@A@&stringQ;@@&stringA@@@@@G@@@%bytesC;@@%bytesA@@@@@M@@@%floatD;@@%floatA@@@@@S@@@$boolE;@@%falsec@@]@$trued@@c@@@A@@@@@d@A@$unitF;@@"()e@@n@@@A@@@@@o@A@ #exnG;@@@A@@@@@s@@@#effH;@@O@A@A@@@@@@|@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@@@@%arrayJ;@@R@A%arrayA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@ @@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A!=ocaml.warn_on_literal_pattern%@&@0Division_by_zero]#@@@A+ . .@+End_of_file\#$@@@A366@'FailureY#,@'@@A<??@0Invalid_argumentX#5@0@@AE$H#H@-Match_failureV#>@@=@9@;@@a@@AV5Y4Y@)Not_foundZ#O@@@A^=a<a@-Out_of_memoryW#W@@@AfEiDi@.Stack_overflow^#_@@@AnMqLq@.Sys_blocked_io_#g@@@AvUyTy@)Sys_error[#o@j@@A^]@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@A5 {1:options Options} VV@@@@@@A+!tAXX@А!a@3@;@@@A@A@@@@@@G@B@@@XX@)ocaml.docݐ @ The type for option values. Either [None] or a value [Some v]. YY:@@@@@@@@@@@@AXX@@BA@;0@A$None@@XX@@A@$SomeBB@@@X,@@B@@@ATLB@@@@Y@@@@@96@@&@#@@@@@# X X@@А!a ]XJ@@@@ @@Aг&optionXX@А!a%l#X$X@@@,o @@]Z6YX@XX@@@X@X@@.hg@$none:[<@;[<D@г&optionC[<JD[<P@А!a@B@3KJJKKKKK@Jo@AQ[<GR[<I@@@ @@@ @@@Z[<<@3 [none] is [None]. g\QQh\Qi@@@@@@@C@@'@{@@@@@@($some~^ko^ks@б@А!a@B@3@=V4@A^kv^kx@@гꠐ&option^k^k@А!a^k|^k~@@@@@@ @@@!@@@@@^kk@ސ7 [some v] is [Some v]. __@@@@@@@D@@#@ʐ@@@@@@;%valueaa@б@г,&optionaa@А!a@B@3@Zk>@Aaa@@@ @@@ @@б'defaultА!aaa@@А!aaa@@!!@@a@@@@@ @@@a @; G [value o ~default] is [v] if [o] is [Some v] and [default] otherwise. bb@@@@@@@,E@@@K'@@@@@@?#get*d +d#@б@г&option5d)6d/@А!a@B@3=<<=====@^y>@ACd&Dd(@@@ @@@ @@А!a Nd3Od5@@@ @@@@@Ud@ g [get o] is [v] if [o] is [Some v] and raise otherwise. @raise Invalid_argument if [o] is [None]. be66cgr@@@@@@@{F@@@v@@@@@@1$bindyizi@б@гؠ&optionii@А!a@B@3@Pk>@Aii@@@ @@@ @@б@б@А!aii@@г&optionii@А!b@B@&ii@@@ @@@-@@@5@@0@@г&optionii@А!b>ii@@@#@@@E @@@@@Hi@@@G@@LJ@@@i@ E [bind o f] is [f v] if [o] is [Some v] and [None] if [o] is [None]. jj%@@@@@@@G@@'@#@@@@@@k$joinl'+l'/@б@гa&option l'<l'B@гk&optionl'5l';@А!a@B@3@H@A%l'2&l'4@@@ @@@ @@@&@@@ #@@г&option8l'I9l'O@А!a!?l'F@l'H@@@'@@@# @@@@@&$@@@Kl''@ H [join oo] is [Some v] if [oo] is [Some (Some v)] and [None] otherwise. XmPPYmP@@@@@@@qH@@#@l@@@@@@E#mapoopo@б@б@А!a@B@3zyyzzzzz@\6@Aoo@@А!b@B@ oo@@@ @@@@б@г&optionoo@А!a'"oo@@@-@@@) @@г&optionoo@А!b/7oo@@@5@@@> @@@@@A@@@4@@Do@@@o@ K [map f o] is [None] if [o] is [None] and [Some (f v)] if [o] is [Some v]. pp@@@@@@@I@@'@ 搠@@@@@@d'productr $r +@б@гH&optionr 1r 7@А!a@ B@3@>@Ar .r 0@@@ @@@ @@б@гf&optionr >r D@А!b@ B@r ;r =@@@ @@@%@@г&option,r R-r X@В@А!a<77r I8r K@@@А!b&??r N@r P@@@@K@/@@H@@@# @@@MMr H!@@@0@@Q3$@@@O@@ TR'@@@Vr  *@ y [product o0 o1] is [Some (v0, v1)] if [o0] is [Some v0] and [o1] is [Some v1] and [None] otherwise. @since 5.5 csYYdv@@@@@@@|J@@:@w@@@@@@s$foldzx{x@б$noneА!a@B@3@6@Axx@@б$someб@А!b@B@xx@@А!axx@@@#@@ @@б@г&optionx x @А!b .x x @@@&@@@5 @@А!a>9x x @@@ C@@>@@:%@@Ax@@OJ@@Ex @@@x@ V [fold ~none ~some o] is [none] if [o] is [None] and [some v] if [o] is [Some v]. y  z ] m@@@@@@@K@@@򐠠@@@@@@e$iter| o s| o w@б@б@А!a@#B@3@|6@A| o {| o }@@г$unit| o | o @@ @@@@@@@@@@б@гu&option!| o "| o @А!a)$(| o )| o @@@/@@@+ @@гڠ$unit6| o 7| o @@ @@@8@@@@@ ;@@@,@@!>B| o z @@@E| o o@z < [iter f o] is [f v] if [o] is [Some v] and [()] otherwise. R}  S}  @@@@@@@kL@@@f@@@@@@^%blendi  j  @б@б@А!a@1B@$3tssttttt@u6@Az  {  @@б@А!a     @@А!a    @@@@@% @@@@@&@@б@г&option    @А!a-(    @@@3@@@(/ @@б@г&option    @А!aD?    @@@J@@@*F @@г&option    "@А!aYT    @@@_@@@,[ @@@@@-^@@@6@@.a9@@@N@@/d  @@@  @ [blend f o1 o2] is [o1] if [o2] is [None], [o2] if [o1] is [None], and [Some (f v1 v2)] if [o1] is [Some v1] and [o2] is [Some v2]. @since 5.5 @ # #C  @@@@@@@M@@*@$@@@@@@'for_all E  E  @б@б@А!a@;B@23  @6@AE  E  @@гҠ$boolE  E  @@ @@@3@@@@@4@@б@г&option/E  0E  @А!a)$6E  7E  @@@/@@@6+ @@г$boolDE  EE  @@ @@@78@@@@@8;@@@,@@9>PE   @@@SE  @ [for_all p] behaves like {!List.for_all} [p] on a list of zero or one element: - [for_all p None] is [true], - [for_all p (Some v)] is [p v]. @since 5.5 `F  aL  @@@@@@@yN@@@t@@@@@@^&exists!wN  xN  @б@б@А!a@EB@<3@u6@AN  N  @@гF$boolN  N  @@ @@@=@@@@@>@@б@г&optionN  N  @А!a)$N  N  @@@/@@@@+ @@гm$boolN  N  @@ @@@A8@@@@@B;@@@,@@C>N   @@@N  @ [exists p] behaves like {!List.exists} [p] on a list of zero or one element: - [exists p None] is [false], - [exists p (Some v)] is [p v]. @since 5.5 O  U  @@@@@@@O@@@ 萠@@@@@@^ & {1:preds Predicates and comparisons} W  W  @@@@@@3@p1@A'is_none"Y  Y  @б@г]&option Y   Y  @А!a@LB@F Y  Y  @@@ @@@H'@@гؠ$bool#Y  $Y  @@ @@@I4@@@@@J7@@@.Y   @c 5 [is_none o] is [true] if and only if [o] is [None]. ;Z  <Z  @@@@@@@TP@@@sO@@@@@@V'is_some#R\  S\  @б@г&option]\  ^\  #@А!a@SB@M3eddeeeee@up>@Ak\  l\  @@@ @@@O @@г.$booly\  'z\  +@@ @@@P@@@@@Q@@@\   @ 7 [is_some o] is [true] if and only if [o] is [Some o]. ] , ,] , h@@@@@@@Q@@@@@@@@@8%equal$_ j n_ j s@б@б@А!a@aB@T3@Oj6@A_ j w_ j y@@б@А!a _ j }_ j @@г$bool_ j _ j @@ @@@U@@@!@@V@@@$@@W @@б@г3&option_ j _ j @А!a4/_ j _ j @@@:@@@Y6 @@б@гJ&option_ j _ j @А!aKF_ j _ j @@@Q@@@[M @@г$bool _ j  _ j @@ @@@\Z@@@@@]]@@@.@@^`1 @@@F@@_c _ j v@@@ _ j j@R [equal eq o0 o1] is [true] if and only if [o0] and [o1] are both [None] or if they are [Some v0] and [Some v1] and [eq v0 v1] is [true].  *`   +a >@@@@@@@ CR@@"@b >@@@@@@'compare% Ac@D Bc@K@б@б@А!a@oB@b3 L K K L L L L L@6@A Rc@O Sc@Q@@б@А!a  Zc@U [c@W@@г 6#int cc@[ dc@^@@ @@@c@@@!@@d@@@$@@e @@б@г̠&option xc@f yc@l@А!a4/ c@c c@e@@@:@@@g6 @@б@г㠐&option c@s c@y@А!aKF c@p c@r@@@Q@@@iM @@г w#int c@} c@@@ @@@jZ@@@@@k]@@@.@@l`1 @@@F@@mc c@N@@@ c@@@될 [compare cmp o0 o1] is a total order on options using [cmp] to compare values wrapped by [Some _]. [None] is smaller than [Some _] values.  d e@@@@@@@ S@@"@ א@@@@@@  䐠8 {1:convert Converting}  g g5@@@@@@3        @1@A)to_result& i7; i7D@б$noneА!e@|B@p i7L i7N@@б@г [&option i7U i7[@А!a@zB@q/ i7R i7T@@@ @@@s6@@г&result !i7h "i7n@А!aD (i7` )i7b@@А!e8K /i7d 0i7f@@@'?@@@vS 7i7_@@@% @@wW(@@LG@@xZ >i7G@@@ Ai77 @v R [to_result ~none o] is [Ok v] if [o] is [Some v] and [Error none] otherwise.  Njoo Ok@@@@@@@ gT@@0@ b@@@@@@z'to_list' em fm@б@г Ġ&option pm qm@А!a@B@}3 x w w x x x x x@>@A ~m m@@@ @@@ @@г $list m m@А!a m m@@@"@@@ @@@@@!@@@ m@Ԑ D [to_list o] is [[]] if [o] is [None] and [[v]] if [o] is [Some v].  n n4@@@@@@@ U@@#@ @@@@@@@&to_seqg p6: p6@@б@г "&option p6F p6L@А!a@ B@3        @_z>@A p6C p6E@@@ @@@ @@г X#Seq!t p6S p6V@  p6W p6X@@А!a%  p6P p6R@@@+@@@ '@@@%@@ *(@@@ p66@ ; z [to_seq o] is [o] as a sequence. [None] is the empty sequence and [Some v] is the singleton sequence containing [v].  qYY r@@@@@@@ ,V@@$@ K '@@@@@@I 5 43 {1:syntax Syntax}  1t 2t@@@@@@3 0 / / 0 0 0 0 0@[v1@A&SyntaxlB ?yDK @yDQ@ X[@@Б$let*h M{Y_ N{Yg@б@г &option X{Ym Y{Ys@А!a@ C@ 3 ` _ _ ` ` ` ` `@0@A e{Yj f{Yl@@@ @@@ @@б@б@А!a t{Yx u{Yz@@г Ѡ&option }{Y ~{Y@А!b@ C@ % {Y~ {Y@@@ @@@ ,@@@4@@ /@@г &option {Y {Y@А!b= {Y {Y@@@#@@@ D @@@@@ G {Yw@@@G@@ KJ@@@ {Y[@ 搠? [( let* )] is {!Option.bind}.  | |@@@@@@@ W@@'@  Ґ@@@@@@j$and*i ~ ~@б@г 4&option ~ ~@А!a@ C@ 3        @>@A ~ ~@@@ @@@  @@б@г R&option ~ ~@А!b@ C@  ~ ~@@@ @@@ %@@г l&option ~ ~@В@А!a<7 #~ $~@@@А!b&? +~ ,~@@@@K@/@@ H@@@# @@@ M 9~!@@@0@@ Q3$@@@O@@ TR'@@@ B~*@ w " [( and* )] is {!Option.product}.  O P#@@@@@@@ hX@@:@  c@@@@@@s$let+j f%+ g%3@б@г Š&option q%9 r%?@А!a@ C@ 3 y x x y y y y y@>@A %6 %8@@@ @@@  @@б@б@А!a %D %F@@А!b@ C@  %J %L@@@& @@ !@@г &option %T %Z@А!b/ %Q %S@@@@@@ 6 @@@@@ 9 %C@@@8@@ =;@@@ %'@ 񐠠> [( let+ )] is {!Option.map}.  [] [@@@@@@@ Y@@'@  ݐ@@@@@@\$and+k  @б@г ?&option  @А!a@ C@ 3        @{>@A  @@@ @@@  @@б@г ]&option  @А!b@ C@   @@@ @@@ %@@г w&option # $@В@А!a<7 . /@@@А!b&? 6 7@@@@K@/@@ H@@@# @@@ M D!@@@0@@ Q3$@@@O@@ TR'@@@ M*@ " [( and+ )] is {!Option.product}.  Z [@@@@@@@ sZ@@:@  n@@@@@@s@"@-@ @&@@3 n m m n n n n n@|(@A A uyDT v@@  J Binding operators. See manual section 12.23 for details. @since 5.5  v x2C@@@@@@@ yDD@U@@  A@ W 5@  @  @ m @@  @  N@ .@G@'@\@<@R@2@{@['@@p@p@P@@{@C ꐠ>=@==@@@=@=@:@@@3        @@}@@h@@@F@A@ H************************************************************************ A@@ A@L@ H  BMM BM@ H OCaml  C C@ H  D D3@ H The OCaml programmers  E44 E4@ H  F F@ H Copyright 2018 Institut National de Recherche en Informatique et  G G@ H en Automatique.  H Hg@ H IhhIh@ H All rights reserved. This file is distributed under the terms of JJ@ H the GNU Lesser General Public License version 2.1, with the  K KN@ H special exception on linking described in the file LICENSE. LOOLO@ H MM@ H************************************************************************NN5@ m* Option values. Option values explicitly indicate the presence or absence of a value. @since 4.08 $6* {1:options Options}  !**X+X@ A* The type for option values. Either [None] or a value [Some v].  V4* [none] is [None].  ̠8* [some v] is [Some v].  H* [value o ~default] is [v] if [o] is [Some v] and [default] otherwise.  & h* [get o] is [v] if [o] is [Some v] and raise otherwise. @raise Invalid_argument if [o] is [None].  ڠ F* [bind o f] is [f v] if [o] is [Some v] and [None] if [o] is [None].  T I* [join oo] is [Some v] if [oo] is [Some (Some v)] and [None] otherwise.  ꠠ L* [map f o] is [None] if [o] is [None] and [Some (f v)] if [o] is [Some v].  s z* [product o0 o1] is [Some (v0, v1)] if [o0] is [Some v0] and [o1] is [Some v1] and [None] otherwise. @since 5.5 堠 W* [fold ~none ~some o] is [none] if [o] is [None] and [some v] if [o] is [Some v]. m =* [iter f o] is [f v] if [o] is [Some v] and [()] otherwise.  * [blend f o1 o2] is [o1] if [o2] is [None], [o2] if [o1] is [None], and [Some (f v1 v2)] if [o1] is [Some v1] and [o2] is [Some v2]. @since 5.5 e * [for_all p] behaves like {!List.for_all} [p] on a list of zero or one element: - [for_all p None] is [true], - [for_all p (Some v)] is [p v]. @since 5.5  * [exists p] behaves like {!List.exists} [p] on a list of zero or one element: - [exists p None] is [false], - [exists p (Some v)] is [p v]. @since 5.5  '* {1:preds Predicates and comparisons} h 6* [is_none o] is [true] if and only if [o] is [None]. " 8* [is_some o] is [true] if and only if [o] is [Some o]. Ϡ * [equal eq o0 o1] is [true] if and only if [o0] and [o1] are both [None] or if they are [Some v0] and [Some v1] and [eq v0 v1] is [true]. 9 * [compare cmp o0 o1] is a total order on options using [cmp] to compare values wrapped by [Some _]. [None] is smaller than [Some _] values. 9* {1:convert Converting}  S* [to_result ~none o] is [Ok v] if [o] is [Some v] and [Error none] otherwise.  E* [to_list o] is [[]] if [o] is [None] and [[v]] if [o] is [Some v]. à {* [to_seq o] is [o] as a sequence. [None] is the empty sequence and [Some v] is the singleton sequence containing [v]. _4* {1:syntax Syntax} D K* Binding operators. See manual section 12.23 for details. @since 5.5  * [( let* )] is {!Option.bind}.  #* [( and* )] is {!Option.product}. /?* [( let+ )] is {!Option.map}.  #* [( and+ )] is {!Option.product}. *@?)../ocamlc0-strict-sequence(-absname"-w5+a-4-9-41-42-44-45-48"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal"-o2stdlib__Option.cmi"-c M/home/ci/builds/workspace/main/flambda/false/label/ocaml-ubuntu-latest/stdlib @@0*'e^7x#]3@@@8CamlinternalFormatBasics0%FU(Q/Tu&Stdlib0Lku]8_٠.Stdlib__Either0Vy`u~c à0J'%>Ty!s+Stdlib__Seq0nwzG&amg@0J'%>Ty!sA\C| ē @@l@.u i @ Q@k e @   @o`  @t@  3@ r @@@@ ~   |  t 1 q@=@@P@@