(VAR f x xs)
(RULES
  app(app(mapt, f), app(leaf, x)) -> app(leaf, app(f, x))
  app(app(mapt, f), app(node, xs)) -> app(node, app(app(maptlist, f), xs))
  app(app(maptlist, f), nil) -> nil
  app(app(maptlist, f), app(app(cons, x), xs)) -> app(app(cons, app(app(mapt, f), x)), app(app(maptlist, f), xs))
)