elm-in-elm development progress

Last updated: 2024-01-31


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

Type Inference

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