| cons | : | [a × c] ⟶ c |
| dropWhile | : | [a → b × c] ⟶ c |
| if | : | [b × c × c] ⟶ c |
| nil | : | c |
| takeWhile | : | [a → b × c] ⟶ c |
| true | : | b |
| X | : | c |
| Y | : | c |
| U | : | c |
| V | : | c |
| I | : | a → b |
| J | : | a → b |
| X1 | : | a |
| Y1 | : | c |
| G1 | : | a → b |
| H1 | : | a → b |
| W1 | : | a |
| P1 | : | c |
| if(true, X, Y) | ⇒ | X |
| if(true, U, V) | ⇒ | V |
| takeWhile(I, nil) | ⇒ | nil |
| takeWhile(J, cons(X1, Y1)) | ⇒ | if(J · X1, cons(X1, takeWhile(J, Y1)), nil) |
| dropWhile(G1, nil) | ⇒ | nil |
| dropWhile(H1, cons(W1, P1)) | ⇒ | if(H1 · W1, dropWhile(H1, P1), cons(W1, P1)) |