elixir
elixir copied to clipboard
Set-theoretic types: representation of all data types
The goal is to represent all data types within types:
- [x] Non-divisible types (integer, floats, pids, etc)
- [x] Dynamic
- [x] Atoms
- [x] Maps
- [ ] New representation which is more efficient for negations
- [ ] Domain key-types
- [x] map_fetch
- [x] map_put
- [x] map_delete
- [ ] map_keys
- [ ] map_values
- [ ] Map module
- [x] Tuples
- [ ] Generalize
:open/:closed - [x] tuple_fetch
- [x] tuple_insert
- [x] tuple_delete
- [x] tuple_values
- [ ] Generalize
- [x] Lists
- [x] list_hd
- [x] list_tl
- [x] Functions
- [x]
apply/2andfun.(args...) - [x]
fn ... -> ... end(expr) - [x] Strong capture (expr)
- [x] Inferred capture (expr)
- [x] Unions of closures / empty applications
- [x] Pretty printing
- [x]
See #14558 and #13881.