ExpressionHash: specializing a hash function, potentially specified at runtime, with expression trees