Scala "<-" para compreensão

Eu descobri que Scala sempre tem uma "explicação natural" para qualquer coisa. Sempre algo como "ohh, mas isso é apenas uma função que está sendo chamada neste e naquele objeto com este e aquele parâmetro". De certa forma, nada é realmente mágico para compiladores, como o conhecemos em outros idiomas.

Minha pergunta está no<- operador conforme usado no código a seguir:

for(i <- 0 to 10) println(i)

Neste exemplo, posso vê-lo sendo reescrito para algo como:

0.to(10).foreach((i:Int)=>println(i))

mas isso não explica como oi foi carregado para a função anônima dentro da função foreach. No ponto em que você escrevei não é um objeto e ainda não é uma variável declarada. Então, o que é e como está sendo transportado para o interior do foreach?

Meu palpite é que finalmente descobri algo que é de fatomagia do compilador

Obrigado pelo seu tempo.

Esclarecer, minha pergunta é: como o operador <- funciona na 1ª linha de código, pois eu não é um objeto no qual possa ser chamado como uma função.

questionAnswers(3)

yourAnswerToTheQuestion