-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
We could generalize this current encoding of type refinements into higher-order contracts. Such contracts are used on lambda expressions, which are values with the sole responsibility of beta-reduction. On that setting, we have the following typing:
input -> output
Where the input type refines some type a, and the type output could be a refinement type for some type b and the input type itself as well (that is, the output type is a dependent type upon the input type). Notice that this relation introduces as well some concept of blaming, where the ill-refined input blames the client while the ill-refined output blames the service/provider.
Reactions are currently unavailable