Alexander Kuklev
08/12/2025, 11:53 PMjoseph_ivie
08/13/2025, 3:19 PMHunter
08/17/2025, 5:16 AMquery "type" (not sure what to call it) in the second proposal would be very interesting, and I can see definite applications for some unique quantum computing framework support in kotlin, which would be very cool.
2. The dependency injection proposal, as it stands, seems hard to follow and too niche. I don't like the idea of seemingly magic and nested default parameters, and it doesn't solve the issue of wanting to share a singleton object across an application. What if, instead, there was something like a lateinit object, similar to a lateinit var. It's an object with a constructor that must be called before use and can only be called once, otherwise a special error is thrown. This allows users to manually specify their dependencies on startup, or provide a default.Youssef Shoaib [MOD]
11/06/2025, 2:44 PMFirFunctionCallRefinementExtension, which DataFrame uses. The string formatting example can very easily be done by generating a local class for this specific string formatter, refining the return type of format to thus be that class, and then it will continue to work just fine with named arguments.Youssef Shoaib [MOD]
11/06/2025, 7:09 PMYoussef Shoaib [MOD]
11/06/2025, 7:33 PM@Main instead of just fun main(args: Array<String>) = with(OurApp(args)) { ... }.
Some of the dependency initializtaion stuff can be done rather well with context parameters, and maybe something like wither to reduce nesting.Youssef Shoaib [MOD]
11/06/2025, 7:58 PMinterface Monoid<M> {
operator fun M.plus(other: M): M
val empty: M
}
and use it as a context (with apt bridge functions). The missing part right now is some way to get the context automatically. In other words, given instances from Scala are the way. I think Scala also has nice syntax where you can say T: Monoid, and it adds a Monoid<T> context parameter as a result.