| Title | Status | Notes |
|---|---|---|
| parsing | In progress | |
| type inference | In progress | |
| optimizing | Just started | |
| emitting | Just started | Very naive JS implementation |
| library | Just started | First version released, not entirely usable without all parsers |
| cli | Just started | Very rudimentary, almost no customization |
| Title | Status | Notes |
|---|---|---|
| module declarations | Nearly done | Effect modules missing |
| port declarations | Complete | |
| integers | Complete | |
| floats | Complete | |
| chars | Complete | |
| strings | Complete | |
| booleans | Complete | |
| variables | Complete | |
| list literals | Complete | |
| binary operators | In progress | Multi-line support missing |
| lambdas | Complete | |
| function calls | Complete | |
| if...then...else | Complete | |
| let...in | Complete | |
| case...of | Nearly done | Custom type destructuring missing |
| records | Complete | |
| record accessors | Not started | |
| record updates | Not started | |
| unit | Complete | |
| tuples and 3-tuples | Complete | |
| type annotations | Complete | |
| custom types | Complete | |
| type aliases | Complete | |
| pattern matching | Nearly done | Some cases still missing |
| infix operator definitions | Not started | |
| WebGL shaders | Not started | |
| comments | Not started |
| Title | Status | Notes |
|---|---|---|
| basic Hindley-Milner | Complete | |
| let polymorphism | Not started | |
| type aliases | Nearly done | Parameters parsed but we're doing nothing with them |
| custom types | Not started | |
| extensible records | Not started | |
| case...of | Nearly done | A few remaining TODOs for generating equations |
| Title | Status | Notes |
|---|---|---|
| constant-folding integers | Just started | Only (+) done |
| constant-folding floats | Just started | Only (+) done |
| constant-folding strings | Not started | |
| constant-folding booleans | Not started | |
| constant-folding lists | Just started | Only (::) done |
| constant-folding tuples and 3-tuples | Not started | |
| merging lambdas | Not started | |
| merging function calls | Not started | |
| merging record updates | Not started | |
| pipe operators inlining | Not started | |
| variable inlining | Not started | |
| if <literal bool> folding | Complete | |
| case <literal> of -> if | Not started |
| Title | Status | Notes |
|---|---|---|
| proof-of-concept JS backend | In progress | only stuff we can parse is emitted |
| dead code elimination | Complete |