Recordemos que el principal axioma del cálculo es:

Sin embargo, una computadora no puede identificar los términos -equivalentes tal y como lo hacemos con nuestra mente, se necesita del siguiente axioma en su lugar.

Una manera de ahorrarnos el lidiar con la -equivalencia es usar índices de Bruijn, donde, en lugar de nombrar a las variables, usamos números para representar la distancia que hay entre una variable ligada y su respectiva lambda.

type Ind = Int
data Expr
= Var Ind
| App Expr Expr
| Lam Expr
Cálculo λ (con nombres)Cálculo λ (de Bruijn)Haskell
(Lam (Var 0))
(Lam (Lam (Var 1)))
(Lam (Var 0)) == (Lam (Var 0))