trait GreetingFormatter:
function format(str name) -> str
struct ScreamingFormatter:
trait GreetingFormatter:
function format(str name) -> str:
return name.upper()
struct Greeter:
function greet(str name, T with trait GreetingFormatter formatter):
print(f"Hello, {formatter.format(name)}!")
main function main():
let g = Greeter()
g.greet(input("What's your name?"))