package frama-c
Install
dune-project
Dependency
Authors
-
MMichele Alberti
-
TThibaud Antignac
-
GGergö Barany
-
PPatrick Baudin
-
NNicolas Bellec
-
TThibaut Benjamin
-
AAllan Blanchard
-
LLionel Blatter
-
FFrançois Bobot
-
RRichard Bonichon
-
VVincent Botbol
-
QQuentin Bouillaguet
-
DDavid Bühler
-
ZZakaria Chihani
-
SSylvain Chiron
-
LLoïc Correnson
-
JJulien Crétin
-
PPascal Cuoq
-
ZZaynah Dargaye
-
BBasile Desloges
-
JJean-Christophe Filliâtre
-
PPhilippe Herrmann
-
JJordan Ischard
-
MMaxime Jacquemin
-
BBenjamin Jorge
-
FFlorent Kirchner
-
AAlexander Kogtenkov
-
RRemi Lazarini
-
TTristan Le Gall
-
KKilyan Le Gallic
-
JJean-Christophe Léchenet
-
MMatthieu Lemerre
-
DDara Ly
-
DDavid Maison
-
CClaude Marché
-
AAndré Maroneze
-
TThibault Martin
-
FFonenantsoa Maurica
-
MMelody Méaulle
-
BBenjamin Monate
-
NNicky Mouha
-
YYannick Moy
-
PPierre Nigron
-
AAnne Pacalet
-
VValentin Perrelle
-
GGuillaume Petiot
-
DDario Pinto
-
VVirgile Prevosto
-
AArmand Puccetti
-
FFélix Ridoux
-
VVirgile Robles
-
JJan Rochel
-
MMuriel Roger
-
CCécile Ruet-Cros
-
JJulien Signoles
-
FFabien Siron
-
NNicolas Stouls
-
HHugo Thievenaz
-
KKostyantyn Vorobyov
-
BBoris Yakobowski
Maintainers
Sources
sha256=9c1cbffd28bb33c17a668107e39c96e4ae7378a3d8249f69b47afc7ee964e9b8
doc/frama-c.kernel/Frama_c_kernel/Option/index.html
Module Frama_c_kernel.Option
Extension of OCaml's Stdlib.Option module. Be wary that the parameters order of the bind function are reversed compared to the standard library and that get takes an optional exn argument. @see https://frama-c.com/download/frama-c-plugin-development-guide.pdf
include Monad.S_with_product with type 'a t = 'a option
module Operators : sig ... endinclude module type of Option
Options
The type for option values. Either None or a value Some v.
value o ~default is v if o is Some v and default otherwise.
join oo is Some v if oo is Some (Some v) and None otherwise.
map f o is None if o is None and Some (f v) if o is Some v.
product o0 o1 is Some (v0, v1) if o0 is Some v0 and o1 is Some v1 and None otherwise.
fold ~none ~some o is none if o is None and some v if o is Some v.
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.
for_all p behaves like List.for_all p on a list of zero or one element:
for_all p Noneistrue,for_all p (Some v)isp v.
exists p behaves like List.exists p on a list of zero or one element:
exists p Noneisfalse,exists p (Some v)isp v.
Predicates and comparisons
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.
Converting
val to_result : none:'e -> 'a option -> ('a, 'e) resultto_result ~none o is Ok v if o is Some v and Error none otherwise.
val to_seq : 'a option -> 'a Seq.tto_seq o is o as a sequence. None is the empty sequence and Some v is the singleton sequence containing v.
Syntax
module Syntax : sig ... endBinding operators. See manual section 12.23 for details.
module Make_monadic_iterators
(M : Monad.S) :
Monad.Iterators
with type 'a iterable := 'a option
and type 'a monad := 'a M.tMake iterators to handle options of monadic elements and monadic options.
val (<?) : 'a t -> 'a -> 'aThe call opt <? default is equivalent to value ~default opt.
Reverse Stdlib.Option.bind parameters for monad compatibility. bind f o is f v if o is Some v and None if o is None.
Redefines Stdlib.Option.get with a exn parameter.
value_or_else ~none o is similar to value but uses a function to compute the default value.
Compute a hash for the option given a hash for the element.
Same as Stdlib.Option.map but avoid creating a copy of the option if the mapped function returns its argument (tested through physical equality).