cons | : | [b × c] ⟶ c |
leaf | : | [a] ⟶ b |
mapt | : | [a → a × b] ⟶ b |
maptlist | : | [a → a × c] ⟶ c |
nil | : | c |
node | : | [c] ⟶ b |
F | : | a → a |
Y | : | a |
G | : | a → a |
V | : | c |
I | : | a → a |
J | : | a → a |
X1 | : | b |
Y1 | : | c |
mapt(F, leaf(Y)) | ⇒ | leaf(F · Y) |
mapt(G, node(V)) | ⇒ | node(maptlist(G, V)) |
maptlist(I, nil) | ⇒ | nil |
maptlist(J, cons(X1, Y1)) | ⇒ | cons(mapt(J, X1), maptlist(J, Y1)) |