Canonical  finSetSubType K := [subType for (@enum_fset K)].Canonical  finSetEqType  (K : choiceType) := EqType {fset K} (finSetEqMixin K).

(* Specifications: *)
let: FinPredType _ _ _ (exist s _) := fpT in s.
Proof. by case: fpT p => ??? [s sE] p; rewrite sE. Qed.
}.
let: FinPred _ fp := p in fp.
Proof. by case: p => ?[]. Qed.