an heterogeneous map. it is basically a regular Dictionary, but it associates with each entry a packer for the key and a packer for the value. for "simple types", for which a packer can be inferred, you may use the 2-argument version of Add() or the [] operator, but for all other types, you should use the 4-argument version of Add(), where you specify the packers for the key and value. note: this class implements IDictionary, so it can be used by third-party code, but only for "simple types", for which a packer can be inferred