package catala

  1. Overview
  2. Docs
Compiler and library for the literate programming language for tax code specification

Install

dune-project
 Dependency

Authors

Maintainers

Sources

1.0.0-alpha.tar.gz
md5=2615968670ac21b1d00386a9b04b3843
sha512=eff292fdd75012f26ce7b17020f5a8374eef37cd4dd6ba60338dfbe89fbcad3443d1b409e44c182b740da9f58dff7e76dcb8ddefe47f9b2b160666d1c6930143

doc/catala.shared_ast/Shared_ast/Program/index.html

Module Shared_ast.ProgramSource

Program declaration context helpers

Sourceval empty_ctx : Shared_ast__.Definitions.decl_ctx

Transformations

Sourceval map_decl_ctx : f: (Shared_ast__.Definitions.naked_typ Catala_utils.Mark.pos -> Shared_ast__.Definitions.naked_typ Catala_utils.Mark.pos) -> Shared_ast__.Definitions.decl_ctx -> Shared_ast__.Definitions.decl_ctx
Sourceval map_scopes : f: (Shared_ast__.Definitions.ScopeName.t -> 'e Shared_ast__.Definitions.scope_body -> 'e Shared_ast__.Definitions.scope_body Bindlib.box) -> 'e Shared_ast__.Definitions.program -> 'e Shared_ast__.Definitions.program
Sourceval map_scopes_env : f: ('acc -> ('e Shared_ast__.Definitions.boxed -> 'e Shared_ast__.Definitions.boxed) -> Shared_ast__.Definitions.ScopeName.t -> 'e Shared_ast__.Definitions.scope_body -> 'acc * 'e Shared_ast__.Definitions.scope_body Bindlib.box) -> ?last: ('acc -> ('e Shared_ast__.Definitions.boxed -> 'e Shared_ast__.Definitions.boxed) -> (Shared_ast__.Definitions.code_export_kind * 'e) list -> (Shared_ast__.Definitions.code_export_kind * 'e) list Bindlib.box) -> init:'acc -> 'e Shared_ast__.Definitions.program -> 'e Shared_ast__.Definitions.program

Maps on the scopes in the program, passing along an "environment" in the form of a function binding all toplevel and scope definitions to their variables in the argument expression

Sourceval map_exprs : ?typ: (Shared_ast__.Definitions.naked_typ Catala_utils.Mark.pos -> Shared_ast__.Definitions.naked_typ Catala_utils.Mark.pos) -> f:('expr1 -> 'expr2 Shared_ast__.Definitions.boxed) -> varf:('expr1 Var.t -> 'expr2 Var.t) -> 'expr1 Shared_ast__.Definitions.program -> 'expr2 Shared_ast__.Definitions.program

If typ is specified, definitions in decl_ctx are also processed

Sourceval fold_left : f:('a -> 'expr Shared_ast__.Definitions.code_item -> 'a) -> init:'a -> 'expr Shared_ast__.Definitions.program -> 'a
Sourceval fold_exprs : f: ('a -> 'expr -> Shared_ast__.Definitions.naked_typ Catala_utils.Mark.pos -> 'a) -> init:'a -> 'expr Shared_ast__.Definitions.program -> 'a
Sourceval fold_right : f:('expr Shared_ast__.Definitions.code_item -> 'a -> 'a) -> init:'a -> 'expr Shared_ast__.Definitions.program -> 'a
Sourceval get_scope_body : (((_ Shared_ast__.Definitions.any, _ Shared_ast__.Definitions.any, 't) Shared_ast__.Definitions.base_gexpr, 't Shared_ast__.Definitions.mark) Catala_utils.Mark.ed as 'e) Shared_ast__.Definitions.program -> Shared_ast__.Definitions.ScopeName.t -> 'e Shared_ast__.Definitions.scope_body
Sourceval get_mark_witness : ((_ Shared_ast__.Definitions.any, _ Shared_ast__.Definitions.any, 'm) Shared_ast__.Definitions.base_gexpr, 'm Shared_ast__.Definitions.mark) Catala_utils.Mark.ed Shared_ast__.Definitions.program -> 'm Shared_ast__.Definitions.mark

Raises Not_found on an empty program

Sourceval untype : (('a Shared_ast__.Definitions.any, 'a Shared_ast__.Definitions.any, _) Shared_ast__.Definitions.base_gexpr, _ Shared_ast__.Definitions.mark) Catala_utils.Mark.ed Shared_ast__.Definitions.program -> (('a, 'a, Shared_ast__.Definitions.untyped) Shared_ast__.Definitions.base_gexpr, Shared_ast__.Definitions.untyped Shared_ast__.Definitions.mark) Catala_utils.Mark.ed Shared_ast__.Definitions.program
Sourceval to_expr : (((_ Shared_ast__.Definitions.any, _ Shared_ast__.Definitions.any, _) Shared_ast__.Definitions.base_gexpr, _ Shared_ast__.Definitions.mark) Catala_utils.Mark.ed as 'e) Shared_ast__.Definitions.program -> Shared_ast__.Definitions.ScopeName.t -> 'e Shared_ast__.Definitions.boxed

Usage: build_whole_program_expr program main_scope builds an expression corresponding to the main program and returning the main scope as a function.

Sourceval find_scope : Shared_ast__.Definitions.ScopeName.t -> ('e, 'e Shared_ast__.Definitions.code_item, (Shared_ast__.Definitions.code_export_kind * 'e) list) Shared_ast__.Definitions.bound_list -> 'e Shared_ast__.Definitions.scope_body
Sourceval modules_to_list : Shared_ast__.Definitions.module_tree_node Catala_utils.Uid.Module.Map.t -> (Catala_utils.Uid.Module.t * Shared_ast__.Definitions.module_intf_id) list

Returns a list of used modules, in topological order