Mensagem de erro
Na mensagem, %s marca um valor que o motor preenche quando levanta o erro.
A história
Você chamou uma função antes de declará-la, e o motor avisou. Vamos entender. No rush, a ordem das declarações é o próprio grafo de dependências. Um símbolo usado antes de ser declarado é um erro de parse, e isso é de propósito. Aqui, a função existe, está declarada mais abaixo no arquivo. Por isso o motor não diz que é um builtin desconhecido, o que mandaria você procurar uma linha que nunca deveria existir. Ele diz o que de fato ocorre: a invocação veio cedo demais. Um efeito disso é que duas funções que se chamam mutuamente são impossíveis por projeto, já que uma sempre viria antes da outra. A mensagem mostra o símbolo e o lugar. Exemplo: na linha dez você chama dobro, mas a função dobro só é declarada na linha trinta. A correção é simples: mova a declaração do fn para cima da primeira linha que o usa. A leitura do arquivo, de cima para baixo, passa a contar a história na ordem certa.
Texto do catálogo de erros do motor do Rush.
