Sesterl - have you used it?

If so, where/how and what do you like about it? :003:

Created by @gfngfn

Sesterl (pronounced as /səsˈtɚːl/) is an ML-like statically-typed functional language that is intended to compile to Erlang. Contrary to its name, Sesterl has not supported session types yet; it only checks the type of messages every process can receive. As mentioned in the section “Features” below, however, many features as a typed functional language have already been furnished. Among them are the following:

  • First-class higher-order functions
  • ADTs and pattern matching
  • The standard Damas–Milner polymorphism (i.e. so-called the let-polymorphism) and Hindley–Milner type inference [Hindley 1969][Milner 1978]
  • Type-level distinction between pure calculations and concurrent computations by a kind of monads [Fowler 2019]
  • A module system equipped with functors and first-class modules based on F-ing modules [Rossberg, Russo & Dreyer 2014]
2 Likes

Well this is interesting looking, not ran across it before. Curious to see how a few issues will be resolved by their designs. :slight_smile:

EDIT: Really liking the syntax, it “mostly” feels like proper ML, though I’d have opted for no parenthesis on function args.

2 Likes

I like that too! More like OCaml, with first class modules and no type classes, than Purerl or Hamler which I would say are more like Haskell (since they are Purescript-based)

I like the parens being there, because when I see code without them my mind starts worrying about currying. Functions are not curried by default in Sesterl right now

4 Likes

When I see the parenthesis I immediately think “why are they passing a 3-tuple into that functions first argument?!?” Lol.

1 Like