title: Why don't some Built-in types work when I compile typeModel?
body: <p>When I compile Type model dictionary stops working.</p>
  
  <pre><code>    [Test]
      public void TestCompileSerialization()
      {
          var data = new Dictionary&lt;int, int&gt;();
          data[1] = 1;
  
          var typeModel = TypeModel.Create();
          var compiledTypeModel = typeModel.Compile();
  
          using (var memory = new MemoryStream())
          {
              compiledTypeModel.Serialize(memory, data);
          }
      }
  </code></pre>
  
  <p>This test throws</p>
  
  <pre><code>Type is not expected, and no contract can be inferred: System.Collections.Generic.KeyValuePair`2[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
  </code></pre>
  
  <p>Do I need to add every dictionary that I might want to serialize to TypeModel or there are some other ways?</p>
  
  <p>BTW I don't get why do I have to make everything public when I want to precompile serializers?</p>