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 sumFQ_ext {X} `{Finite X} (f g : X -> Q) :
(forall x, f x == g x) -> sumFQ f == sumFQ g.