Definition FTI_aux id :=
    let m := co_members (get_co id) in
    (ListTypeGen (fun it => A (field_type (fst it) m)) (fun it => type_func (field_type (fst it) m)) m).

Lemma type_func_ind: forall t, type_func t = match t as t0 return A t0 with | Tstruct id => F_Tstruct id (FTI_aux id) | t' => F_Tint t' end.