Identity Coercion type_of_finfun : finfun_of >-> finfun_type.Notation "T ^ n" := (@finfun_of (exp_finIndexType n) T (Phant _)) : type_scope.Definition exp_finIndexType n := ordinal_finType n.Local Notation fun_of_fin_def :=
  (fun aT rT f x => tnth (@fgraph aT rT f) (enum_rank x)).Local Notation finfun_def := (fun aT rT f => @Finfun aT rT (codom_tuple f)).Definition fun_of_fin := fun_of_fin_def.Definition finfun := finfun_def.

(* Specifications: *)
Lemma fun_of_finE : fun_of_fin = fun_of_fin_def.
Lemma finfunE : finfun = finfun_def.