package catala

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Abstract syntax tree of the scope language

Identifiers

module LocationSet : Stdlib.Set.S with type elt = location Catala_utils.Marked.pos

Abstract syntax tree

val locations_used : 'm expr -> LocationSet.t
type 'm scope_decl = {
  1. scope_decl_name : Shared_ast.ScopeName.t;
  2. scope_sig : (Shared_ast.typ * Desugared.Ast.io) Shared_ast.ScopeVar.Map.t;
  3. scope_decl_rules : 'm rule list;
  4. scope_mark : 'm Shared_ast.mark;
}
type 'm program = {
  1. program_scopes : 'm scope_decl Shared_ast.ScopeName.Map.t;
  2. program_topdefs : ('m expr * Shared_ast.typ) Shared_ast.TopdefName.Map.t;
  3. program_ctx : Shared_ast.decl_ctx;
}
val type_program : 'm program -> Shared_ast.typed program