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
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions