Let's say someone implements the integer type as follows:
{ Z1K1: 'Z10101', Z10101K1: { Z1K1: 'Z10102', Z10102K1: '5' }, Z10101K2: { Z1K1: 'Z10103', Z10103K1: '-' } }
The type Z10101 is an integer; Z10102 is a positive integer which represents its integer value with a string (Z10102K1); and Z10103 is a sign which likewise represents positive/negative with a string (Z10103K1).
If a contributor passed a Z10101 (let's call it Z1000K1) to a function and wanted to use the value -5 as an integer in Python code, they would currently have to do something like
negative5 = int(Z1000K1.Z10101K2.Z10103K1 + Z1000K1.Z10101K1.Z10102K1)
which is a bit cumbersome and non-portable. It would be nice if contributors could attach implementations corresponding to (de)serialization to a user-defined Type directly. This will result in more readable, less error-prone code, since non-trivial (de)serialization can thus be shared (and tested) among the community.