Ocaml_typing.Modeinclude Mode_intf.Sval print_longident :
(Format.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 -> Format.formatter -> unit) optionPrints a pinpoint. Say "a foo" if definite is false, say "the foo" otherwise. Defaults to the latter.
type nonrec 'a simple_error = 'a Mode_intf.simple_errorval undo_changes : changes -> unittype nonrec allowed = Allowance.allowedtype nonrec disallowed = Allowance.disallowedtype nonrec equate_step = Mode_intf.equate_stepmodule type Common_axis_pos = sig ... endmodule type Common_axis_neg = sig ... endmodule Locality : sig ... endmodule Regionality : sig ... endmodule Linearity : sig ... endmodule Portability : sig ... endmodule Uniqueness : sig ... endmodule Contention : sig ... endmodule Forkable : sig ... endmodule Yielding : sig ... endmodule Statefulness : sig ... endmodule Visibility : sig ... endmodule Staticity : sig ... endtype '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;}module Axis : sig ... endmodule Value : sig ... endThe most general mode. Used in most type checking, including in value bindings in Env
module Alloc : sig ... endThe 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.
module Const : sig ... endval regional_to_local : ('l * 'r) Regionality.t -> ('l * 'r) Locality.tConverts regional to local, identity otherwise
val locality_as_regionality : ('l * 'r) Locality.t -> ('l * 'r) Regionality.tInject locality into regionality
val regional_to_global : ('l * 'r) Regionality.t -> ('l * 'r) Locality.tConverts regional to global, identity otherwise
Similar to locality_as_regionality, behaves as identity on other axes
val alloc_to_value_l2r : ('l * 'r) Alloc.t -> ('l * disallowed) Value.tSimilar 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
val value_r2g :
?hint:('l * 'r) Hint.morph ->
('l * 'r) Value.t ->
('l * 'r) Value.tSimilar to value_to_alloc_r2g, but followed by alloc_as_value.
module Modality : sig ... endmodule Crossing : sig ... endSome 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.