Skip to content

Set-theoretic types: type definitions #13881

@josevalim

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