let list' elt sep sep' f =
let rec loop =
function
| [] -> ()
| x :: xs -> (pp f sep; elt f x; pp f sep'; loop xs)
in
function
| [] -> ()
| [ x ] -> (elt f x; pp f sep')
| x :: xs -> (elt f x; pp f sep'; loop xs)