package ppxlib
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=764b96121d6ffd6a73820e0ec5235176bfc42b94cf2ff97e32d068a5c4b28c62
sha512=2dcce0be6acdb3e185bfdad2785303a405c617f99949316abe6793f785d7227c10795ca49e79290bd385873da635191b44e8a5c211de114a168846d5d26f505c
doc/ppxlib/Ppxlib/Deriving/index.html
Module Ppxlib.Deriving
Source
Deriving code from type declarations
Generator registration
Type of registered derivers
val add :
?str_type_decl:
(Astlib.Ast_500.Parsetree.structure_item list,
Astlib.Ast_500.Asttypes.rec_flag
* Astlib.Ast_500.Parsetree.type_declaration list)
Generator.t ->
?str_type_ext:
(Astlib.Ast_500.Parsetree.structure_item list,
Astlib.Ast_500.Parsetree.type_extension)
Generator.t ->
?str_exception:
(Astlib.Ast_500.Parsetree.structure_item list,
Astlib.Ast_500.Parsetree.type_exception)
Generator.t ->
?str_module_type_decl:
(Astlib.Ast_500.Parsetree.structure_item list,
Astlib.Ast_500.Parsetree.module_type_declaration)
Generator.t ->
?sig_type_decl:
(Astlib.Ast_500.Parsetree.signature_item list,
Astlib.Ast_500.Asttypes.rec_flag
* Astlib.Ast_500.Parsetree.type_declaration list)
Generator.t ->
?sig_type_ext:
(Astlib.Ast_500.Parsetree.signature_item list,
Astlib.Ast_500.Parsetree.type_extension)
Generator.t ->
?sig_exception:
(Astlib.Ast_500.Parsetree.signature_item list,
Astlib.Ast_500.Parsetree.type_exception)
Generator.t ->
?sig_module_type_decl:
(Astlib.Ast_500.Parsetree.signature_item list,
Astlib.Ast_500.Parsetree.module_type_declaration)
Generator.t ->
?extension:
(loc:Location.t ->
path:string ->
Astlib.Ast_500.Parsetree.core_type ->
Astlib.Ast_500.Parsetree.expression) ->
string ->
t
Register a new deriving generator.
The various arguments are for the various items on which derivers can be attached in structure and signatures.
We distinguish exception
from type_extension
as exception E
is not exactly the same as type exn += E
. Indeed if the type exn
is redefined, then type exn += E
will add E
to the new exn
type while exception E
will add E
to the predefined exn
type.
extension
register an expander for extension with the name of the deriver. This is here mostly to support the ppx_deriving backend.
val add_alias :
string ->
?str_type_decl:t list ->
?str_type_ext:t list ->
?str_exception:t list ->
?str_module_type_decl:t list ->
?sig_type_decl:t list ->
?sig_type_ext:t list ->
?sig_exception:t list ->
?sig_module_type_decl:t list ->
t list ->
t
add_alias name set
add an alias. When the user write the alias, all the generator of set
will be used instead. It is possible to override the set for any of the context by passing the specific set in the approriate optional argument of add_alias
.