A barrel's 'module NAME' makes its directory a module; a declaration other modules use says 'export'. Private use from another module is an error naming the module and where to mark it; 'friend module' sees everything (a test harness); a file in no module is public and a package keeps its own module. LUDIC_VIS_REPORT=1 lists every violation instead of stopping, so a codebase can be given its exports first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
13 lines
318 B
Text
13 lines
318 B
Text
# bank/ledger.ludic - inherits `module bank` from the barrel that imports it
|
|
var balance: int = 0
|
|
export event Deposited { amount: int }
|
|
function add(n: int) -> void {
|
|
balance += n
|
|
}
|
|
export function deposit(n: int) -> void {
|
|
add(n)
|
|
emit Deposited(amount: n)
|
|
}
|
|
export function total() -> int {
|
|
return balance
|
|
}
|