Very simple error type - just holds a description of the error. This is useful for human diagnosis and troubleshooting, but not for applications to parse. The justification for this is to deny applications visibility into the communication layer, forcing the application code to act solely on the logical responses that the API provides, promoting abstraction in the application code.
Context wrapper, to bind an API with a context.
API without a
Trait to extend an API to make it easy to bind it to a context.
Trait for types which are a placeholder of a value that may become available at some later point in time.