| 0 | : | c |
| 1 | : | c |
| add | : | c → a → c |
| cons | : | [a × b] ⟶ b |
| fold | : | [c → a → c × b × c] ⟶ c |
| mul | : | c → a → c |
| nil | : | b |
| prod | : | [b] ⟶ c |
| sum | : | [b] ⟶ c |
| F | : | c → a → c |
| Y | : | c |
| G | : | c → a → c |
| V | : | a |
| W | : | b |
| P | : | c |
| X1 | : | b |
| Y1 | : | b |
| fold(F, nil, Y) | ⇒ | Y |
| fold(G, cons(V, W), P) | ⇒ | fold(G, W, G · P · V) |
| sum(X1) | ⇒ | fold(add, X1, 0) |
| fold(mul, Y1, 1) | ⇒ | prod(Y1) |