Skip to content

Disentangle interactions between type variables and subtypes #113

Description

@nsbgn

For A < B, when y ** y ** y is applied to A and x [x <= B], it fails, but when x is bound to B, it succeeds.

This is because two type variables are unified exactly (ie disregarding subtypes) whereas a type operator will take into account subtypes.

It usually is not a problem when types are eagerly fixed --- that is, the most specific type is selected immediately upon application --- since type variables are then taken out of the mix before the problem arises. However, it's still incorrect and there will be situations where it will come back to haunt us.

See also issue #110 for the genesis of this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions