Schönfinkel showed you can throw away variables entirely. Two combinators — K (keep the first, drop the second) and S (share the argument) — are enough to build every function. Their most famous trick: S K K is the identity. Slide to choose an input and watch S K K x reduce, step by step, back to x.
K a b = a and S f g x = f x (g x). Apply S K K x = K x (K x) = x, because the outer K keeps its first argument x and discards the second (K x). The reducer here is real closures: K=a=>b=>a, S=f=>g=>x=>f(x)(g(x)), I=S(K)(K). A fail-loud self-check throws unless S(K)(K)(x)===x for a spread of inputs AND K(a)(b)===a — i.e. the identity really is manufactured from S and K with no variable of its own.
Showing x as a coloured token is a stand-in; the mechanism is the closure reduction, which is exact. Full combinatory completeness (that S and K build ALL functions, via bracket abstraction) is Schönfinkel’s 1924 theorem, cited not re-proved here.