Module Ocaml_typing.ModeSource
include Mode_intf.S
val print_longident :
(Ocaml_typing.Mode_intf.Fmt.formatter ->
Ocaml_parsing.Longident.t ->
unit)
refRemove hints from all variables that have been created. See the comments on erase_hint in Solver_intf for details.
module Hint = Mode_hintval print_pinpoint :
Hint.pinpoint ->
(definite:bool ->
capitalize:bool ->
Ocaml_typing.Mode_intf.Fmt.formatter ->
unit)
optionPrints a pinpoint. Say "a foo" if definite is false, say "the foo" otherwise. Defaults to the latter.
type 'a comonadic_with = {areality : 'a;linearity : Linearity.Const.t;portability : Portability.Const.t;forkable : Forkable.Const.t;yielding : Yielding.Const.t;statefulness : Statefulness.Const.t;
}type monadic = {uniqueness : Uniqueness.Const.t;contention : Contention.Const.t;visibility : Visibility.Const.t;staticity : Staticity.Const.t;
}The most general mode. Used in most type checking, including in value bindings in Env
The mode on arrow types. Compared to Value, it contains the Locality axis instead of Regionality axis, as arrow types are exposed to users and would be hard to understand if it involves Regionality.
Converts regional to local, identity otherwise
Inject locality into regionality
Converts regional to global, identity otherwise
Similar to locality_as_regionality, behaves as identity on other axes
Similar to local_to_regional, behaves as identity in other axes
Similar to regional_to_local, behaves as identity on other axes
Similar to regional_to_global, behaves as identity on other axes
Similar to value_to_alloc_r2g, but followed by alloc_as_value.
Some modes on an axis might be indistinguishable for values of some type, in which case the actual mode of values can be strenghthened (or equivalently the expected mode loosened) accordingly to make more programs mode-check. The capabilities/permissions to perform such adjustments are called mode crossing and depicted in this module.