<> (foo ?x) (?x)
<> (map ?x (list ?l)) (map/l map/x ?x ?l)
<> (map/x ?x (?h ?t)) (?x ?h (map/x ?x ?t))
<> (map/x ?x (?h)) (map/r (?x ?h))
<> (?h (map/r ?t)) (?map/r (?h ?t))
<> (map/l map/r ?l) (list ?l)
map foo (list (1 (2 (3 (4 (5))))))