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

Set-theoretic types: type definitions #13881

Open
12 tasks
josevalim opened this issue Oct 6, 2024 · 0 comments
Open
12 tasks

Set-theoretic types: type definitions #13881

josevalim opened this issue Oct 6, 2024 · 0 comments

Comments

@josevalim
Copy link
Member

josevalim commented Oct 6, 2024

This refers to second and third milestones of Elixir's type system. It is a continuation of #13227 and can only be started once that is completed.

New constructs and APIs will be added to Elixir:

  • Define a construct for typed structs (field documentation, parametric definitions, private fields, deprecate empty structs)
  • Define a construct for type aliases
  • Define a construct for type signatures
  • Define a construct for typed behaviours
  • Define a construct for typed protocols and implementations (parametric protocols)
  • Define a construct for Erlang FFI

At the descr-level, we need to support:

  • Occurrence typing
  • Recursive types
  • Parametric polymorphism and anonymous function call inlining
  • Strong arrows
  • Row polymorphism
  • Behaviours
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

1 participant