let rev l = fold cons l nil
let rev_map f l = fold (fun x acc -> cons (f x) acc) l nil
let length l = fold (fun _ c -> c+1) l 0
let rev l = fold cons l nil
let rev_map f l = fold (fun x acc -> cons (f x) acc) l nil
let length l = fold (fun _ c -> c+1) l 0