fact: Fixpoint asPi (ps : list Type) {struct ps} : ((forall U, asFunc ps U -> U) -> Type) -> Type := match ps as ps return ((forall U, asFunc ps U -> U) -> Type) -> Type with | nil => fun f => f (fun _ x => x) | p :: ps => fun f => forall x : p, asPi ps (fun App => f (fun _ f' => App _ (f' x))) end.
imports: Coq.Lists.List ExtLib.Data.Member