XLR est un langage dynamique, conçu dès l'origine comme un exécutant (back-end) pour le compilateur XL1 (d'où le nom, qui représente le runtime de XL). Il partage la syntaxe de base XL0 avec XL1, mais son comportement est plus proche de celui d'un langage fonctionnel, même si XL1 est sensé plus ressembler à un langage impératif. XLR n'a pratiquement qu'un seul opérateur de construction, "->", qui indique une réécriture. La notation à gauche de la notation de la réécriture est transformée en notation à droite de la réécriture.
Ce mécanisme est utilisé pour implémenter les notations standards :
si vrai alors PartieVraie sinon PartieFausse -> PartieVraie si faux alors PartieVraie sinon PartieFausse -> PartieFausse