Just added the following delgate:

delegate bool Authenticator<A>(A a1, A a2);

It's purpose is to take two obejcts of type A and return if they are equal or not.  Of course, this is equivalent to:

Function<A, Function<A, bool>>

However, that's much clunkier.  I'm pretty torn as to which is a better coding style.  Building things out of the function delegate (a la functional programming) or providing specialized delegates for the task.  Sigh...