Fixpoint hlist_gen ls : hlist F ls :=
    match ls with
    | nil => Hnil
    | cons x ls' => Hcons (f x) (hlist_gen ls')
    end.

(* Specifications: *)
Lemma hlist_get_hlist_gen : forall ls t (m : member t ls), hlist_get m (hlist_gen ls) = f t.