| 0 | : | b |
| 1 | : | b |
| cons | : | [d × e] ⟶ e |
| f | : | [b] ⟶ a |
| false | : | c |
| filter | : | [d → c × e] ⟶ e |
| filter2 | : | [c × d → c × d × e] ⟶ e |
| map | : | [d → d × e] ⟶ e |
| nil | : | e |
| true | : | c |
| F | : | d → d |
| Z | : | d → d |
| U | : | d |
| V | : | e |
| I | : | d → c |
| J | : | d → c |
| X1 | : | d |
| Y1 | : | e |
| G1 | : | d → c |
| V1 | : | d |
| W1 | : | e |
| J1 | : | d → c |
| X2 | : | d |
| Y2 | : | e |
| f(0) | ⇒ | f(0) |
| 0 | ⇒ | 1 |
| map(F, nil) | ⇒ | nil |
| map(Z, cons(U, V)) | ⇒ | cons(Z · U, map(Z, V)) |
| filter(I, nil) | ⇒ | nil |
| filter(J, cons(X1, Y1)) | ⇒ | filter2(J · X1, J, X1, Y1) |
| filter2(true, G1, V1, W1) | ⇒ | cons(V1, filter(G1, W1)) |
| filter2(false, J1, X2, Y2) | ⇒ | filter(J1, Y2) |