deserialization now uses TypeLists; all tests pass