I'm looking for a language that:
- is statically typed
- supports algebraic data types and exhaustive pattern matching
- does not necessarily promote an OO model
- has garbage collection
- compiles to a single binary
- has support for web development
- bonus: is not tied to an existing VM ecosystem (JVM, .NET, BEAM)
Basically Rust with a GC. Is there anything out there like this? Is anyone working on something like this that I could contribute to?
I would argue that Rust and Swift also qualify though, since their lifetime management and reference counting respectively are valid forms of garbage collection.
Crystal fits except for the promoting OO part.
If we ignore the bonus then Scala and elixir might also qualify.