public static ulong Hash64 <T>(T o, Func <System.Reflection.PropertyInfo, bool> propertyFilter)
        {
            List <Func <object, IEnumerable <byte> > > functions = GetCachedCompiledHashFunctions <T>(propertyFilter);
            var bytes = functions.SelectMany(f => f(o)).ToArray();

            return(Farmhash.Hash64(bytes, bytes.Length));
        }
        internal static ulong Hash64_NoCache_forBenchmarks <T>(T o)
        {
            IEnumerable <Func <object, IEnumerable <byte> > > functions;

            functions = BuildHashFunctionsWrapped <T>(ACCEPT_ALL).Select(f => f.Compile()).ToList();
            var bytes = functions.SelectMany(f => f(o)).ToArray();

            return(Farmhash.Hash64(bytes, bytes.Length));
        }