Module Stdlib.Option
Contents
Instructions: Use this module in your project
In the IDE (CLion, Visual Studio Code, Xcode, etc.) you use for your DkSDK project:
- Add the following to your project's - dependencies/CMakeLists.txt:- DkSDKProject_DeclareAvailable(ocaml CONSTRAINT "= 4.14.0" FINDLIBS str unix runtime_events threads dynlink) DkSDKProject_MakeAvailable(ocaml)
- Add the - Findlib::ocamllibrary to any desired targets in- src/*/CMakeLists.txt:- target_link_libraries(YourPackage_YourLibraryName # ... existing libraries, if any ... Findlib::ocaml)
- Click your IDE's - Buildbutton
Not using DkSDK?
FIRST, do one or all of the following:
- Run: - opam install ocaml.4.14.0
- Edit your - dune-projectand add:- (package (name YourExistingPackage) (depends ; ... existing dependenices ... (ocaml (>= 4.14.0))))- Then run: - dune build *.opam # if this fails, run: dune build
- Edit your - <package>.opamfile and add:- depends: [ # ... existing dependencies ... "ocaml" {>= "4.14.0"} ]- Then run: - opam install . --deps-only
FINALLY, add the  library to any desired (library)and/or (executable) targets in your **/dune files:
(library
  (name YourLibrary)
  ; ... existing library options ...
  (libraries
    ; ... existing libraries ...
    ))
(executable
  (name YourExecutable)
  ; ... existing executable options ...
  (libraries
    ; ... existing libraries ...
    ))Options
type``'a t`` ='aoption`` =
|None
|Someof'a
The type for option values. Either None or a value Some v.
valnone :'aoption
none is None.
valsome :'a->'aoption
some v is Some v.
valvalue :'aoption``->``default:'a->'a
value o ~default is v if o is Some v and default otherwise.
valget :'aoption``->'a
get o is v if o is Some v and raise otherwise.
- 
raises Invalid_argument if oisNone.
valbind :'aoption``->``('a->'boption``)``->'boption
bind o f is f v if o is Some v and None if o is None.
valjoin :'aoption`` option``->'aoption
join oo is Some v if oo is Some (Some v) and None otherwise.
valmap : ``('a->'b)``->'aoption``->'boption
map f o is None if o is None and Some (f v) is o is
Some v.
valfold : ``none:'a->``some:``('b->'a)``->'boption``->'a
fold ~none ~some o is none if o is None and some v if o is
Some v.
valiter : ``('a->unit)``->'aoption``->unit
iter f o is f v if o is Some v and () otherwise.
Predicates and comparisons
valis_none :'aoption``->bool
is_none o is true if and only if o is None.
valis_some :'aoption``->bool
is_some o is true if and only if o is Some o.
valequal : ``('a->'a->bool)``->'aoption``->'aoption``->bool
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.
valcompare : ``('a->'a->int)``->'aoption``->'aoption``->int
compare cmp o0 o1 is a total order on options using cmp to compare
values wrapped by Some _. None is smaller than Some _ values.
Converting
valto_result : ``none:'e->'aoption``->``('a,'e)``result
to_result ~none o is Ok v if o is Some v and Error none
otherwise.
valto_list :'aoption``->'alist
to_list o is [] if o is None and [v] if o is Some v.
valto_seq :'aoption``->'aSeq.t
to_seq o is o as a sequence. None is the empty sequence and
Some v is the singleton sequence containing v.
