Definition sumF {X} `{Finite X} (f : X -> nat) : nat :=
list_sum (map f enum).
Definition sumFQ {X} `{Finite X} (f : X -> Q) : Q :=
Qsum(map f enum).

Lemma map_const_repeat {X Y} (y : Y) (l : list X) :
map (fun _ => y) l = repeat y (length l).