Module Ecaml__.Defun
include Ecaml__.Defun_intf.Defun
val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.t
module Open_on_rhs_intf : sig ... end
include Core_kernel.Applicative.Let_syntax with type 'a t := 'a t with module Open_on_rhs_intf := Open_on_rhs_intf
module Open_on_rhs_intf : sig ... end
module Let_syntax : sig ... end
include Open_on_rhs_intf.S with type 'a S.t := 'a t
type 'a t
= 'a t
val return : 'a -> 'a t
val map : 'a t -> f:('a -> 'b) -> 'b t
val both : 'a t -> 'b t -> ('a * 'b) t
val required : Ecaml.Symbol.t -> 'a Ecaml__.Import.Value.Type.t -> 'a t
val optional : Ecaml.Symbol.t -> 'a Ecaml__.Import.Value.Type.t -> 'a option t
val rest : Ecaml.Symbol.t -> 'a Ecaml__.Import.Value.Type.t -> 'a list t
val optional_with_default : Ecaml.Symbol.t -> 'a -> 'a Ecaml__.Import.Value.Type.t -> 'a t
val optional_with_nil : Ecaml.Symbol.t -> 'a Ecaml__.Import.Value.Type.t -> 'a t
An optional argument whose
Value.Type.t
handlesnil
directly.
include Ecaml__.Import.Value.Type.S
val create : Core_kernel.Sexp.t -> ('a -> Core_kernel.Sexp.t) -> (value -> 'a) -> ('a -> value) -> 'a t
val with_of_value_exn : 'a t -> (value -> 'a) -> 'a t
val to_sexp : 'a t -> 'a -> Core_kernel.Sexp.t
val bool : bool t
val float : float t
val ignored : unit t
val int : int t
val string : string t
val string_cached : string t
string_cached
is likestring
, except it usesof_utf8_bytes_cached
.
val unit : unit t
val value : value t
val list : 'a t -> 'a list t
val vector : 'a t -> 'a array t
val option : ?wrapped:bool -> 'a t -> 'a option t
The representation of an option type's values in Elisp can be "wrapped" or "unwrapped". In either case,
None
is represented asnil
. The unrwapped representation ofSome v
is the representation ofv
, whereas the wrapped representation iscons v nil
. Wrapping is necessary ifnil
is a representation of some valuev_nil
, in order to distinguish between the representation ofNone
andSome v_nil
.
val alist : 'a t -> 'b t -> ('a * 'b) list t
val tuple : 'a t -> 'b t -> ('a * 'b) t
Represent a tuple (a,b) as the elisp cons cell (a . b)
val sexpable : (module Core_kernel.Sexpable with type t = 'a) -> name:Core_kernel.Sexp.t -> 'a t
Embed a sexpable ocaml type, so we can save values of the type in emacs, e.g. as buffer local variables
val caml_embed : 'a Core_kernel.Type_equal.Id.t -> 'a t
Embed values of type
'a
. Note that unlike other functions above, the values are not transformed, so this can be used to preserve state in emacs. More precisely, this following returnstrue
:let var = Var.create (Value.Type.caml_embed type_id) in Current_buffer.set_value var v; phys_equal v (Current_buffer.value_exn var)
val path_list : string list t
A list of directories. Each element is a string (directory name) or nil (try default directory). nil values are converted to ".", which has the same meaning.
module Interactive : sig ... end
module For_testing : sig ... end
val defun_raw : Ecaml.Symbol.t -> Core_kernel.Source_code_position.t -> ?docstring:string -> ?interactive:string -> args:Ecaml.Symbol.t list -> ?optional_args:Ecaml.Symbol.t list -> ?rest_arg:Ecaml.Symbol.t -> Ecaml__.Import.Function.Fn.t -> unit
module Returns : sig ... end
val defun : Ecaml.Symbol.t -> Core_kernel.Source_code_position.t -> ?docstring:string -> ?define_keys:(Ecaml.Keymap.t * string) list -> ?obsoletes:Ecaml.Symbol.t -> ?interactive:Interactive.t -> 'a Returns.t -> 'a t -> unit
val defalias : Ecaml.Symbol.t -> Core_kernel.Source_code_position.t -> ?docstring:string -> alias_of:Ecaml.Symbol.t -> unit -> unit
(describe-function 'defalias)
(Info-goto-node "(elisp)Defining Functions")
val define_obsolete_alias : Ecaml.Symbol.t -> Core_kernel.Source_code_position.t -> ?docstring:string -> alias_of:Ecaml.Symbol.t -> since:string -> unit -> unit
(describe-function 'define-obsolete-function-alias)
N.B. Load order matters. A subsequent
defun
will override the aliasing.
val defun_nullary : Ecaml.Symbol.t -> Core_kernel.Source_code_position.t -> ?docstring:string -> ?define_keys:(Ecaml.Keymap.t * string) list -> ?obsoletes:Ecaml.Symbol.t -> ?interactive:Interactive.t -> 'a Returns.t -> (unit -> 'a) -> unit
val defun_nullary_nil : Ecaml.Symbol.t -> Core_kernel.Source_code_position.t -> ?docstring:string -> ?define_keys:(Ecaml.Keymap.t * string) list -> ?obsoletes:Ecaml.Symbol.t -> ?interactive:Interactive.t -> (unit -> unit) -> unit
val lambda : Core_kernel.Source_code_position.t -> ?docstring:string -> ?interactive:Interactive.t -> 'a Returns.t -> 'a t -> Ecaml__.Import.Function.t
val lambda_nullary : Core_kernel.Source_code_position.t -> ?docstring:string -> ?interactive:Interactive.t -> 'a Returns.t -> (unit -> 'a) -> Ecaml__.Import.Function.t
val lambda_nullary_nil : Core_kernel.Source_code_position.t -> ?docstring:string -> ?interactive:Interactive.t -> (unit -> unit) -> Ecaml__.Import.Function.t
module Private : sig ... end