One thing I find interesting and original is the idea of flow-based type inference.
Citing the "The Lobster Type System" page [1]:
Type checking happens in order of function calls,
i.e. it is much like evaluating the code,
but with types instead of values.
With this flow analysis, lobster infer more specific types for each usage of a variable. var a = nil // a is a nilable of unknown type
if ..:
a = "foo" // a is a nilable string
if a: // guaranteed not be nil inside block
a += "!" // ok: a is of type string here
[1] https://aardappel.github.io/lobster/type_checker.html