// Define a function with effect tracking
fn factorial(n: Int) -> Int with Pure:
match n:
0 => 1
_ => n * factorial(n - 1)
// Actors for concurrency
actor Counter:
var count: Int = 0
on Increment(n: Int):
count = count + n
on GetCount -> Int:
return count
fn main():
let result = factorial(5)
println("5! = " + str(result))