"iGܠ55.5.0+dev0-2025-04-28/&Option!tA;!a@@A$None@@7../../stdlib/option.mliXX@@&OptionA@$SomeB@@@XX @@ B@@@A&optionL%B@@@@Y@@@@@X@@@@@@A@$none!a@B@@@@@1[ZZ2[Zn@@0C@@$some@!a@B@/ @@@@@@G^H^@@FD@@%value@?!a@B@@@@'default  @@@@@aaba@@`E@@#get@Y!a@B@@@@@@@wd::xd:S@@vF@@$bind@o!a@B@@@@@@ ~!b@B@@@@@@ @@@@@@@@ii@@G@@$join@!a@B@@@@@@@ @@@@@@lEElEm@@H@@#map@@!a@B@!b@B@@@@ɠ@@@Π@@@@@@@@oo@@I@@'product@ޠ!a@ B@@@@@!b@ B@@@@@@@@@@@@@@@ @r>>r>v@@J@@$fold$none!a@B@$some@!b@B@@@@" @@@@@@@@@@:x;x /@@9K@@$iter@@!a@#B@$unitm@@@@@@B@@@ n@@@@@ @@!@_|  `|  @@^L@@%blend@@!a@1B@$@@@%@@&@c@@@(@j@@@*o@@@,@@-@@.@@/@    @@@M@@'for_all @@!a@;B@2$boolo@@@3@@4@@@@6 p@@@7@@8@@9@E  E  @@N@@&exists!@@!a@EB@<%q@@@=@@>@@@@@1r@@@A@@B@@C@N  N  @@O@@'is_none"@Ƞ!a@LB@F@@@HLs@@@I@@J@Y  Y  @@P@@'is_some#@!a@SB@M@@@Ogt@@@P@@Q@\ * *\ * I@@Q@@%equal$@@!a@aB@T@u@@@U@@V@@W@@@@Y@@@@[v@@@\@@]@@^@@_@3_  4_  @@2R@@'compare%@@!a@oB@b@#intw@@@c@@d@@e@=@@@g@D@@@ix@@@j@@k@@l@@m@ac^^bc^@@`S@@)to_result&$none!e@|B@p@c!a@zB@q@@@s&Stdliby&result@@@v@@w@@x@iUUiU@@T@@'to_list'@!a@B@}@@@$listz @@@@@@mm@@U@@&to_seqg@!a@ B@@@@&Stdlib{#Seq!t@@@ @@ @pTTpTv@@V@@ӱ&SyntaxlB@$let*h@Ǡ!a@ C@ @@@ @@ ֠!b@ C@ @@@ @@  @@@ @@ @@ @{wy{w@@W@@$and*i@!a@ C@ @@@ @!b@ C@ @@@  @@@@ @@@ @@ @@ @'~(~@@&X@@$let+j@!a@ C@ @@@ @@ !b@ C@ @@ 4 @@@ @@ @@ @LCEMCx@@KY@@$and+k@D!a@ C@ @@@ @Q!b@ C@ @@@ \@@@@ @@@ @@ @@ @z{@@yZ@@@@~ybb @}[@@@@3.Option values.@ J Option values explicitly indicate the presence or absence of a value.@@@@$4.08@@@@@@@A7../../stdlib/option.mliA'options'Options@@#(Option.t3 #The type for option values. Either $None, or a value &Some v!.@@@@@@@@@@@@Y@@@@@@@@A@@@+Option.none3$none$ is $None!.@@@@@@@@@@@@@@@@+Option.some3&some v$ is &Some v!.@@@@@@@@@@@@@ @@@@,Option.value30value o ~default$ is !v$ if !o$ is &Some v% and 'default+ otherwise.@@@@@@@@@@@@@+@@@@@*Option.get3%get o$ is !v$ if !o$ is &Some v5 and raise otherwise.@@@@@@@@0Invalid_argument#if !o$ is $None!.@@@@@@d@@@@ؠ+Option.bind3(bind o f$ is #f v$ if !o$ is &Some v% and $None$ if !o$ is $None!.@@@@@@@@@@@@@@@@@@砕+Option.join3'join oo$ is &Some v$ if "oo$ is -Some (Some v)% and $None+ otherwise.@@@@@@@@@@@@@@@@@*Option.map3'map f o$ is $None$ if !o$ is $None% and *Some (f v)$ if !o$ is &Some v!.@@@@@@@@@@@@@@ @@@@.Option.product3-product o0 o1$ is -Some (v0, v1)$ if "o0$ is 'Some v0% and "o1$ is +Some v1% and $None+ otherwise.@@@@#5.5@@@@@@@/@80@;&@@@@+Option.fold32fold ~none ~some o$ is $none$ if !o$ is $None% and &some v$ if !o( is &Some v!.@@@@@@@@@@@@:@:9@32@w+@@@@(+Option.iter3(iter f o$ is #f v$ if !o$ is &Some v% and "()+ otherwise.@@@@@@@@@@@@D@E@8@@@@0,Option.blend3-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!.@@@@#5.5@@@@@@@x@y@p@l@@@@d.Option.for_all3)for_all p. behaves like ,List.for_all@@! !p & on a list of zero or one element:.for_all p None$ is $true!,@2for_all p (Some v)$ is #p v!.@@@@@@#5.5@@@@@@@@<@?@@@@~-Option.exists3(exists p. behaves like +List.exists@@! !p & on a list of zero or one element:-exists p None$ is %false!,@1exists p (Some v)$ is #p v!.@@@@@@#5.5@@@@@@@@{@~@@@@A%preds:Predicates and comparisons@@.Option.is_none3)is_none o$ is $true0 if and only if !o$ is $None!.@@@@@@@@@@@@@@@@@.Option.is_some3)is_some o$ is $true0 if and only if !o$ is &Some o!.@@@@@@@@@@@@@@@@@,Option.equal3.equal eq o0 o1$ is $true0 if and only if "o0% and "o1* are both $None4 or if they are 'Some v0% and 'Some v1% and (eq v0 v1$ is $true!.@@@@@@@@@@@@@@@@@@@Ϡ.Option.compare31compare cmp o0 o1 # is a total order on options using #cmp " to compare values wrapped by &Some _". $None1 is smaller than &Some _( values.@@@@@@@@@@@@@A@D@G@@@@ѠA'convert*Converting@@0Option.to_result31to_result ~none o$ is $Ok v$ if !o$ is &Some v% and *Error none/ otherwise.@@@@@@@@@@@@@@}@@@@ݠ.Option.to_list3)to_list o$ is "[]$ if !o$ is $None% and #[v]$ if !o$ is &Some v!.@@@@@@@@@@@@@@@@@-Option.to_seq3(to_seq o$ is !o0 as a sequence. $None? is the empty sequence and &Some v & is the singleton sequence containing !v!.@@@@@@@@@@@@@@@@@A&syntax&Syntax@@/-Option.Syntax3 8Binding operators. See manual section 12.23 for details.@@@@#5.5@@@@@@@AO6Option.Syntax.( let* )3(( let* )$ is D@!.@@@@@@@@@@@@@ @@@@@6Option.Syntax.( and* )3(( and* )$ is D@!.@@@@@@@@@@@@ @& @)@@@@2Option.Syntax.let+3(( let+ )$ is nD@!.@@@@@@@@@@@@@A@D@@@@㠕2Option.Syntax.and+3(( and+ )$ is PD@!.@@@@@@@@@@@@@\@_@@@@@@@@@@@@@@@A#Seq@@@@@