The API docs don't say which types are supported. From looking at the code, the short & simple answer to "which types are supported" is (IMHO) that any type is supported (as long as you know what you are doing :). A longer answer ... amounts to: types having a suitable `toString()` method that either maps distinct values to distinct strings or to meaningful equivalence classes. Without going to this level of detail, I will rework the sentence.