Application builder.

Useful module implementations

noop is an implementation of Functoria.job that holds no state, does nothing and has no dependency.

type argv

The type for command-line arguments, similar to the usual Sys.argv.

val argv : argv Functoria.typ

argv is a value representing argv module types.

val sys_argv : argv Functoria.impl

sys_argv is a device providing command-line arguments by using Sys.argv.

keys a is an implementation of Functoria.job that holds the parsed command-line arguments.

type info

The type for application about the application being built.

val info : info Functoria.typ

info is a value representing info module types.

val app_info : ?type_modname:string -> ?gen_modname:string -> unit -> info Functoria.impl

app_info is the module implementation whose state contains all the information available at configure-time. The type of the generated value lives in the module type_modname: if not set, it is Functoria_info. The value is stored into a generated module name gen_modname: if not set, it is Info_gen.


module type S = sig ... end

S is the signature that application builders have to provide.

module Make (P : S) : sig ... end

Make is an helper to generate new a application builder with the custom constructs defined by S.

module type DSL = module type of struct include Functoria end

The signature of Functoria-like DSLs.


module Name : sig ... end

Name helpers.

module Codegen : sig ... end

Code generation helpers.