-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Labels
Description
This is a placeholder to not lose track of some discussion in other issues that typed-function could allow clients to declare one type is a subtype of another.
Potential advantages of this include:
- reduce redundancy in type checking/number of type checks (there is no need to reiterate the supertype check in the subtype, the infrastructure will do it for you; and if the supertype check fails, there is no need to test any of its subtypes).
- typed-function can reorder the type checks to avoid "missing" a type because a more inclusive check happens to get ordered before a less inclusive one; hence proper operation of typed-function will be less dependent on getting the order of types exactly right, allowing clients potentially to better spread/modularize addition of types in their code.
- error/sanity checking: illegal to add a conversion from a subtype to a supertype.
- better implementation of type conversions, reduction in redundancy in conversion: a conversion from a supertype would work on all its subtypes as well, and a conversion to a subtype would convert to all supertypes as well. At the moment, if A is a subtype of B and C is a subtype of D, you might have to define all four conversions from either A or B to C or D as appropriate; with subtyping, depending on the desired behavior, this might well reduce to two conversions or even just one (from B to C).
Reactions are currently unavailable