char := struct {} log := fn(log_level: int, message: ^char, message_length: int): int { 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) } main := fn(): int { return 0; }