# visible.ludic — L3: a program in no module uses what module bank exports: a function to call # and an event to listen to. Its private `add` and `balance` stay out of reach. # # Running it prints: 42 42 import "bank" program Visible { state VisibleState { heard: int = 0 } @On(Deposited) handler Heard(visible_st: mut VisibleState) { visible_st.heard += amount } entry (bank_st: mut BankState, visible_st: VisibleState) { deposit(bank_st, 30) deposit(bank_st, 12) print(`{total(bank_st)} {visible_st.heard}`) } }