About Violet
Violet is a small, experimental dependently typed language.
Status
Violet is in active development. Expect rough edges, missing documentation, and breaking changes. Feedback and experiments are very welcome.
History
Violet started as a personal experiment to learn how dependently typed languages are actually implemented. I had already written several type-polymorphic checkers and had a working grasp of unification, so I expected the jump to be small. It turned out to take four years of rewrites before the implementation reached anything I considered worthwhile — and there is still plenty of design space left unexplored.
The earlier attempts live at here. Along the way, several people contributed to the project:
Beyond the names listed above, many others offered suggestions and tried the language out along the way. Their feedback shaped Violet just as much, and I am grateful for it.
Violet stands on the shoulders of several other projects:
- The elaboration is learned from elaboration-zoo.
- pterodactyl strongly shaped the final syntax choices, and teach we a new perspective of the elaboration.
- The operator syntax borrows heavily from Rhombus.