Definition procedure_family(A : nat -> Type) := forall n, A n.Definition efficiency_predicate := forall (A : nat -> Type), procedure_family A -> Prop.

Theorem expected_poly_time_ret_f : forall (A : nat -> Type)(B : nat -> Set)(eqd : forall n, eq_dec (B n))(f : forall n, (A n) -> (B n)), efficient _ f -> efficient _ (fun n (a : A n) => Ret (eqd n) (f n a)).