Violet

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.