let singleton = \x f z. f x z in
let reverse = \lst. lst (\h sofar. sofar make_list (singleton h)) empty in
let zip = \left right. left (\h sofar. sofar (\x y. isempty y
let singleton = \x f z. f x z in
let reverse = \lst. lst (\h sofar. sofar make_list (singleton h)) empty in
let zip = \left right. left (\h sofar. sofar (\x y. isempty y