| nil | : | list |
| cons | : | [nat × list] ⟶ list |
| op | : | [nat → nat × nat → nat] ⟶ nat → nat |
| implode | : | [list × nat → nat × nat] ⟶ nat |
| explode | : | [list × nat → nat × nat] ⟶ nat |
| F | : | nat → nat |
| G | : | nat → nat |
| H | : | nat |
| T | : | list |
| X | : | nat |
| op(F, G) · X | ⇒ | F · (G · X) |
| implode(nil, F, X) | ⇒ | X |
| implode(cons(H, T), F, X) | ⇒ | implode(T, F, F · X) |
| explode(nil, F, X) | ⇒ | X |
| explode(cons(H, T), F, X) | ⇒ | explode(T, op(F, F), F · X) |