Right now defining a converter is quite complicated, as illustrated by the documentation.
I think we could improve on this by moving the part about casting and checking the type out of the converters.
We would then just pass a class when setting a converter.
For example instead of this:
We would do this:
We could even use lambdas when isCompatibleWith doesn't need to be implemented.