char := struct {} log := fn(log_level: int, message: ^char, message_length: int): int { @eca(i32,1, 1, 1) return 0; } error := fn(message: ^char, message_length: int): int { log(0, message, message_length) } warn := fn(message: ^char, message_length: int): int { log(1, message, message_length) } info := fn(message: ^char, message_length: int): int { log(2, message, message_length) } debug := fn(message: ^char, message_length: int): int { log(3, message, message_length) } trace := fn(message: ^char, message_length: int): int { log(4, message, message_length) } test := fn(): int { @eca(i32, 1, 1, 1); }