exerro.me

The esel programming language
Check out my other projects!

github icon Repositories

esel is my dream for a programming language. My mission started years ago with Flux - a C like language with a few borrowed features from others such as Rust, Python, and Haxe. Over the years it's evolved into something very new and unique. Some of the notable design features are:

  • Syntax-less - using an AST editor to edit code with native peer programming.
  • Algebraic effects - encoding a wide range of effects within the type system, allowing explicit handling of side effects including exceptions, generator-like yielding, and loop breaks. yield effect example screenshot
  • Tagged unions and pattern matching - static type based tagged unions and destructuring.
  • Typeclasses - define abstract behaviour and implement it (generally on certain types). Definitions can depend on implementations of these typeclasses, for example requiring an instance of the Add typeclass for some generic types.
  • Thread safety through explicit purity of functions passed to the thread constructor. Communication is handled through channels.

Due to various issues with the AST editing side of things, there's not been a huge amount of progress. I'm excited to get back into things once isca has moved forwards a bit.