I'm utterly confused and hope to find clarification here. I came across a $\lambda$-calculus Interpreter by Liang Gong (who ever that is :)) claiming to be of California University of Berkley. Link: https://jacksongl.github.io/files/demo/lambda/index.htm#firstPage
Besides the associativity rules of $\lambda$-calculus, I learnt that application binds stronger than abstraction. That would mean the following equivalence holds: $$ \lambda f x. f (f x) \equiv \lambda f. \lambda x. (f (f x)) $$
However, the above mentioned interpreter interprets it as the following equivalence: $$ \lambda f x. f (f x) \equiv \lambda f .(\lambda x. f) (f x)$$
Can anyone help me and tell me what is correct? Thanks in advance!