Test whether another object is equal to this function.
System-created function objects are only equal to other functions.
Two function objects are known to represent the same function if
It is the same object. Static and top-level functions are compile time constants when used as values, so referring to the same function twice always give the same object,
or if they refer to the same member method extracted from the same object. Extracting a member method as a function value twice gives equal, but not necessarily identical, function values.
Function expressions never give rise to equal function objects. Each time a function expression is evaluated, it creates a new closure value that is not known to be equal to other closures created by the same expression.
Function by having a
call method should have their
hashCode depending on the object.
bool operator==(Object other);