Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for the variant operator in the type and effect system #1209

Merged
merged 13 commits into from
Oct 20, 2023

Commits on Oct 20, 2023

  1. Remove unionMatch

    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    d98c1d0 View commit details
    Browse the repository at this point in the history
  2. Improve printing of sum types

    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    c3515da View commit details
    Browse the repository at this point in the history
  3. Add constraint generator for variant operator

    This also requires adding a new constraint `isDefined` that holds iff a
    type that unifies with the given type is defined in the context.
    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    063cfd4 View commit details
    Browse the repository at this point in the history
  4. Add findMap utility

    Allows us to find and transform values from an iterable
    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    3a9cbf0 View commit details
    Browse the repository at this point in the history
  5. Add test for unification of sum types

    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    2762c16 View commit details
    Browse the repository at this point in the history
  6. Fix sum type constructor synthesis

    - Nullary constructors where being incorrectly defined as lambdas, when
    they should just be values.
    - We were not adding the type annotation of the defined type to the
    operator. But we want this, since in ensures we do not construct open
    rowed variants and ensures that we have the right topological sorting to
    ensure the variant constructors are after the defined types.
    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    fd35a09 View commit details
    Browse the repository at this point in the history
  7. Add test for type inference

    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    26cac28 View commit details
    Browse the repository at this point in the history
  8. Fix formatting

    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    c1f75f3 View commit details
    Browse the repository at this point in the history
  9. Add effect signature for variant operator

    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    efec3a7 View commit details
    Browse the repository at this point in the history
  10. Add document the rule for the variant operator

    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    58c1bca View commit details
    Browse the repository at this point in the history
  11. Remove dead code and comments

    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    d5dba4b View commit details
    Browse the repository at this point in the history
  12. Update fixtures

    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    e9eafd3 View commit details
    Browse the repository at this point in the history
  13. Fir formatting

    Shon Feder committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    474b6aa View commit details
    Browse the repository at this point in the history