Alphabet
nil
:
listf
cons
:
[a → a × listf] ⟶ listf
dapply
:
[a × a → a × a → a] ⟶ a
lapply
:
[a × listf] ⟶ a
Variables
x
:
a
F
:
a → a
G
:
a → a
lf
:
listf
Rules
dapply
(
x
,
F
,
G
)
⇒
F
· (
G
·
x
)
lapply
(
x
,
nil
)
⇒
x
lapply
(
x
,
cons
(
F
,
lf
))
⇒
F
·
lapply
(
x
,
lf
)