- Prevent name clashes
- Program scope
- Inner scopes
- Prevent undefined errors
- Program scope
- Inner scopes
- Warn about errors in a nice way
- Control flow
- Return statement
- Match/switch
- Math (Numbers only)
- Sugest code fix for errors
- Standard library
- Support imports
- CLI
- Easy installation
- Bootstrap a project
- Compile the project to JS
- Documentation
- Playground
- Silk <-> JS interoperability
- Small type system
- Know the shape of objects
- Know the types of variables
- Know the return types of functions
- Know the shape of a module
- Generate TS types
- Editor integration (Language Server)
- Rewrite Silk in Silk itself