Caml1999I037 * Š.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@@'is_none@^!a@@@@$boolE@@@@@@}G  ~G  @@N@@'is_some@x!a@@@@@@@@@@J L LJ L k@@O@@%equal@@!a@@1@@@@@@@@@@@@@@@C@@@@@@@@@@M  M  @@P@@'compare@@!a@@#intA@@@@@@@@ɠ@@@@Р@@@@@@@@@@@@@Q  Q  @@Q@@)to_result$none!e@@!a@@@@&Stdlib&result @@@@@@@@W w wW w @@$R@@'to_list@ !a@@@@$listK @@@@@@*[+[*@@?S@@&to_seq@%!a@@@@:#Seq!t @@@@@@F^vvG^v@@[T@@Ӡ&Syntax@$let*@G!a@v@@@u@@ T!b@y@@@w@@x] @@@z@@{@@|@risi@@U@@$and*@m!a@@@@}@x!b@@@@~@@@@@@@@@@@@ll9@@V@@$let+@!a@@@@@@ !b@@@@@@@@@@@oegoe@@W@@$and+@!a@@@@@à!b@@@@̠@@@@@@@@@@@@rr@@X@@@@gt(+@Y@@@@_L.Stdlib__Option0zf**=+Stdlib__Seq0nwzG&amg.Stdlib__Either0Vy`u~c à&Stdlib0Lku]8_٠8CamlinternalFormatBasics0%FU(Q/Tu@@@Caml1999T037X:7C.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@@*@$@@@@@@ & {1:preds Predicates and comparisons}  E   E  @@@@@@3      @1@A'is_none G  G  @б@гu&option!G  "G  @А!a@8B@2 -G  .G  @@@ @@@4'@@г$bool;G  <G  @@ @@@54@@@@@67@@@FG   @{ 5 [is_none o] is [true] if and only if [o] is [None]. SH  TH  J@@@@@@@lN@@@g@@@@@@V'is_some!jJ L PkJ L W@б@гɠ&optionuJ L ]vJ L c@А!a@?B@93}||}}}}}@up>@AJ L ZJ L \@@@ @@@; @@гF$boolJ L gJ L k@@ @@@<@@@@@=@@@J L L @ѐ 7 [is_some o] is [true] if and only if [o] is [Some o]. K l lK l @@@@@@@O@@@@@@@@@8%equal"M  M  @б@б@А!a@MB@@3@Oj6@AM  M  @@б@А!a M  M  @@г$boolM  M  @@ @@@A@@@!@@B@@@$@@C @@б@гK&optionM  M  @А!a4/M  M  @@@:@@@E6 @@б@гb&optionM  M  @А!aKFM  M  @@@Q@@@GM @@гؠ$bool#M  $M  @@ @@@HZ@@@@@I]@@@.@@J`1 @@@F@@Kc2M  @@@5M  @j [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]. BN  CO 7 ~@@@@@@@[P@@"@zV@@@@@@'compare#YQ  ZQ  @б@б@А!a@[B@N3dccddddd@6@AjQ  kQ  @@б@А!a rQ  sQ  @@гN#int{Q  |Q  @@ @@@O@@@!@@P@@@$@@Q @@б@г䠐&optionQ  Q  @А!a4/Q  Q  @@@:@@@S6 @@б@г&optionQ  Q  @А!aKFQ  Q  @@@Q@@@UM @@г#intQ  Q  @@ @@@VZ@@@@@W]@@@.@@X`1 @@@F@@YcQ  @@@Q  @ [compare cmp o0 o1] is a total order on options using [cmp] to compare values wrapped by [Some _]. [None] is smaller than [Some _] values. R  S  V@@@@@@@Q@@"@@@@@@@8 {1:convert Converting} U X XU X u@@@@@@3@1@A)to_result$ W w { W w @б$noneА!e@hB@\ W w  W w @@б@гs&option W w  W w @А!a@fB@]/ +W w  ,W w @@@ @@@_6@@г&result 9W w  :W w @А!aD @W w  AW w @@А!e8K GW w  HW w @@@'?@@@bS OW w @@@% @@cW(@@LG@@dZ VW w @@@ YW w w @ R [to_result ~none o] is [Ok v] if [o] is [Some v] and [Error none] otherwise.  fX   gY @@@@@@@ R@@0@ z@@@@@@z'to_list% }[  ~[@б@гܠ&option [ [@А!a@pB@i3        @>@A [ [@@@ @@@k @@г $list [& [*@А!a [# [%@@@"@@@m @@@@@n!@@@ [@쐠 D [to_list o] is [[]] if [o] is [None] and [[v]] if [o] is [Some v].  \++ \+t@@@@@@@ S@@#@ ؐ@@@@@@@&to_seqe ^vz ^v@б@г :&option ^v ^v@А!a@ B@q3        @_z>@A ^v ^v@@@ @@@s @@гp#Seq!t ^v ^v@  ^v ^v@@А!a%  ^v ^v@@@+@@@ '@@@%@@ *(@@@ ^vv@S z [to_seq o] is [o] as a sequence. [None] is the empty sequence and [Some v] is the singleton sequence containing [v].  +_ ,`@@@@@@@ DT@@$@c ?@@@@@@I M L3 {1:syntax Syntax}  Ib Jb2@@@@@@3 H G G H H H H H@[v1@A&SyntaxjB Wg Xg@ pY@@Б$let*f ei fi@б@г Ġ&option pi qi@А!a@ C@ 3 x w w x x x x x@0@A }i ~i@@@ @@@ @@б@б@А!a i i@@г 預&option i i@А!b@ C@ % i i@@@ @@@ ,@@@4@@ /@@г &option i i@А!b= i i@@@#@@@ D @@@@@ G i@@@G@@ KJ@@@ i@? [( let* )] is {!Option.bind}.  j j@@@@@@@ U@@'@  ꐠ@@@@@@j$and*g l l @б@г L&option l l@А!a@ C@ 3        @>@A l l@@@ @@@  @@б@г j&option l l%@А!b@ C@  "l #l@@@ @@@ %@@г &option 0l3 1l9@В@А!a<7 ;l* <l,@@@А!b&? Cl/ Dl1@@@@K@/@@ H@@@# @@@ M Ql)!@@@0@@ Q3$@@@O@@ TR'@@@ Zl*@ " [( and* )] is {!Option.product}.  gm:< hm:c@@@@@@@ V@@:@  {@@@@@@s$let+h ~oek oes@б@г ݠ&option oey oe@А!a@ C@ 3        @>@A oev oex@@@ @@@  @@б@б@А!a oe oe@@А!b@ C@  oe oe@@@& @@ !@@г &option oe oe@А!b/ oe oe@@@@@@ 6 @@@@@ 9 oe@@@8@@ =;@@@ oeg@ > [( let+ )] is {!Option.map}.  p p@@@@@@@ W@@'@  @@@@@@\$and+i r r@б@г W&option r r@А!a@ C@ 3        @{>@A r r@@@ @@@  @@б@г u&option !r "r@А!b@ C@  -r .r@@@ @@@ %@@г &option ;r <r@В@А!a<7 Fr Gr@@@А!b&? Nr Or@@@@K@/@@ H@@@# @@@ M \r!@@@0@@ Q3$@@@O@@ TR'@@@ er*@ " [( and+ )] is {!Option.product}.  rs ss'@@@@@@@ X@@:@  @@@@@@s@"@-@ @&@@3        @|(@A A g t(+@@  J Binding operators. See manual section 12.23 for details. @since 5.5  d44 fr@@@@@@@ g@U@@  A@ o M@ - @  @  X@ 8@f@F@_@?@t@T@w@W#@@l@l@L@@w@? :9@99@@@9@9@6{@@@3        @@y@@d @}@@B@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  Ihh Ih@ H All rights reserved. This file is distributed under the terms of  J J@ H the GNU Lesser General Public License version 2.1, with the  K !KN@ H special exception on linking described in the file LICENSE.  &LOO 'LO@ H  ,M -M@ H************************************************************************ 2N 3N5@ m* Option values. Option values explicitly indicate the presence or absence of a value. @since 4.08  86* {1:options Options}  !* >X ?X@ A* The type for option values. Either [None] or a value [Some v].  j4* [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].  h 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].  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].  =* [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 y '* {1:preds Predicates and comparisons} ^ 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]. / * [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]. U4* {1:syntax Syntax} : 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  [/home/teraram/ci/builds/workspace/parallel-build/flambda/false/label/ocaml-manycores/stdlib @@0E~4m̀~o~q3        @ @@8CamlinternalFormatBasics0%FU(Q/Tu&Stdlib0Lku]8_٠.Stdlib__Either0Vy`u~c à ϐ0zf**=+Stdlib__Seq0nwzG&amg@0zf**=AZC]ư  ғ @@W@d| w @_@ q @_ Đ @2y  @ @  ?@ ~ @@@#r@     ~ ; {@@@P@@