Module Ecaml__.Var

type 'a t = {
symbol : Ecaml.Symbol.t;
type_ : 'a Ecaml__.Import0.Value.Type.t;
}
val type_ : 'a t -> 'a Ecaml__.Import0.Value.Type.t
val symbol : 'a t -> Ecaml.Symbol.t
module Fields : sig ... end
val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.t
type 'a var = 'a t
val create : Ecaml.Symbol.t -> 'a Ecaml__.Import0.Value.Type.t -> 'a t
module Wrap : sig ... end

Idiomatic usage of Wrap looks like:

module And_value : sig ... end
module And_value_option : sig ... end
val symbol_as_value : _ t -> Ecaml__.Import0.Value.t
val default_value_exn : 'a t -> 'a

(describe-function 'default-value) (Info-goto-node "(elisp)Default Value")

val default_value_is_defined : _ t -> bool

(describe-function 'default-boundp) (Info-goto-node "(elisp)Default Value")

val set_default_value : 'a t -> 'a -> unit

(describe-function 'set-default) (Info-goto-node "(elisp)Default Value")

val make_buffer_local_always : _ t -> unit

(describe-function 'make-variable-buffer-local) (Info-goto-node "(elisp)Creating Buffer-Local")

val is_buffer_local_always : _ t -> bool

is_buffer_local_always t returns true if t automatically becomes buffer-local when set. Calling make_buffer_local_always t causes is_buffer_local_always t = true.

val is_buffer_local_if_set : _ t -> Ecaml__.Buffer0.t -> bool

(describe-function 'local-variable-if-set-p ) (Info-goto-node "(elisp)Creating Buffer-Local")