The interface of the IntDictionaryCompiler.Add allows all long values:
Add(self, libcpp_utf8_string, long_int)
But doesn't work with negative integers:
In [5]: compiler = IntDictionaryCompiler()
In [5]: compiler.Add('a', 1)
In [6]: compiler.Add('b', -11)
In [7]: compiler.Compile(); compiler.WriteToFile(path)
In [8]: dictionary = Dictionary(path)
In [9]: dictionary.get('a').GetValue()
Out[9]: 1
In [10]: dictionary.get('b').GetValue()
Out[10]: 18446744073709551605
Instead the compiler should've thrown an error on seeing negative values.