Ppx_functor_application
val pp_longident : Format.formatter -> longident -> Base.unit
type module_dsl =
| Var of longident
| App of module_dsl * module_dsl
| ModExpr of Ppxlib.module_expr
| Abs of Base.string * module_dsl
| Pipe of module_dsl Base.list
| Meta of module_dsl * Ppxlib.location
Defines a DSL for functor application.
val pp_module_dsl :
Ppx_deriving_runtime.Format.formatter ->
module_dsl ->
Ppx_deriving_runtime.unit
val show_module_dsl : module_dsl -> Ppx_deriving_runtime.string
val var_of_string : string -> module_dsl
val elab : loc:Ppxlib__.Location.t -> module_dsl -> Ppxlib.module_expr
Elaborate a OCaml module expression from a `module_dsl`
val collect_pipes : module_dsl -> module_dsl Base.List.t
val normalize : module_dsl -> module_dsl
Get rid of extra `Pipe` nodes
val parse : Ppxlib.expression -> module_dsl
Recognize a small language embedded in OCaml syntax for applying functors in chain.