Skip to content

Possible roadmap feature: Implement subtypes #140

@gwhitney

Description

@gwhitney

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).

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions