title: Func returning false while evaluating
body: <p>Any idea why the func is returning false? Equals does not fire as well!!!</p>
  
  <pre><code>class Program
  {
      static void Main(string[] args)
      {          
          Func&lt;Person, SomethingElse, bool&gt; matchNested = 
              (p, s) =&gt; p.Nested == s.Nested;
  
          var matched = matchNested(new Person()
              {
                  Age = 10, 
                  Nested = new Nested()
                      {
                          Validity = DateTime.Today
                      }
              },
              new SomethingElse()
              {
                  Age = 10, 
                  Nested = new Nested()
                      {
                          Validity = DateTime.Today
                      }
              });
  
          Console.WriteLine(matched);
      }
  }
  
  internal class Person
  {
      public string Name { get; set; }
      public int Age { get; set; }
      public Nested Nested { get; set; }
  }
  
  internal class SomethingElse
  {
      public string Name { get; set; }
      public int Age { get; set; }
      public Nested Nested { get; set; }
  }
  
  internal class Nested
  {
      public DateTime Validity { get; set; }
  
      public override bool Equals(object obj)
      {     
          if (obj == null || GetType() != obj.GetType())
          {
              return false;
          }
  
          if (!this.Validity.Equals((obj as Nested).Validity))
              return false;
  
          return base.Equals(obj);
  
      }
  
      public override int GetHashCode()
      {
          return base.GetHashCode();
      }
  }
  </code></pre>