Allow under-constrained function applications

Issue #16 resolved
Alex Knauth created an issue

Under-constrained function applications are applications where the function can be partially instantiated, but there are extra type variables in the return type that are un-constrained, meaning it would be valid no matter what they were. Expressions like this would partially instantiate the forall type so that it could be fully instantiated (with any type(s)) later.

Comments (8)

  1. Alex Knauth reporter
    • changed status to open

    This keeps getting re-closed because of a commit on the partial-inst branch, but this should be kept open until it's resolved on the master branch.

  2. Alex Knauth reporter

    It turns out that this can lead to unsoundness in the cases where both mutation is involved and the introduced foralls are instantiated more than once with different types.

  3. Alex Knauth reporter

    This could still be improved by allowing type variables that can only be instantiated once.

  4. Log in to comment