1 2 3 4 5
let (&) f g = f g let rec subseq = function | [] -> [""] | h::t -> List.append (subseq t) & List.map (fun x -> h ^ x) (subseq t)