Section ListFun2'.
Context {A B: Type}.
Context {RA: relation A}.
Context {RB: relation B}.
Instance proper_fold_left': forall (f: A -> B -> A) {Proper_f: Proper (RA ==> RB ==> RA) f}, Proper (Forall2 RB ==> RA ==> RA) (fold_left f).
Context {EqRA: Equivalence RA}.
End ListFun2'.
Definition not_nil {A: Type} (l: list A): Prop := l <> nil.

Lemma eq_nil_dec {A: Type}: forall (l: list A), {l = nil} + {not_nil l}.