Reminds me of https://github.com/francisrstokes/super-expressive
In particular generic methods don't have the problem of type erasure that affect generic classes so many things you would want to do with types "just work".
Almost everybody is afraid of it, but $ works just fine as an identifier and can be used to make a DSL that looks like jQuery in Java.
Maybe someday i will write a class like:
class("some.namespace.MyClass").method(...)