Visitar URL original
Set-theoretic types: type definitions · Issue #13881 · elixir-lang/elixir · GitHub
Skip to content

Set-theoretic types: type definitions #13881

Open

Description

@josevalim

This refers to second and third milestones of Elixir's type system.

New constructs and APIs will be added to Elixir:

  • Define a construct for typed structs (field documentation, parametric definitions, private fields)
  • 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
    • Dispatching based on output type
    • Type-checking of for-comprehensions
  • Define a construct for Erlang FFI
  • Define a construct for typing configuration

Implementation:

  • Strong arrows
  • Exhaustive type checking (case, try, receive, with, etc)

Additional theoretical concepts:

  • Row polymorphism
  • Behaviours
  • Witness generation / property based testing

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions