To support advanced use cases like #497 we'll need the Encodable interface to be context-sensitive:
class Encodable[T, U]:
...
@classmethod
def encode(cls, vl: T, env: Mapping[str, Any]) -> U: ...
@classmethod
def decode(cls, vl: U, env: Mapping[str, Any]) -> T: ...
To support advanced use cases like #497 we'll need the
Encodableinterface to be context-sensitive: