let frequency xs = let sums = sum_int (List.map ~f:fst xs) in let i = Random.int sums in let rec aux acc = function | ((x,g)::xs) -> if i < acc+x then g else aux (acc+x) xs | _ -> failwith "frequency" in aux 0 xs