I was just able to implement instance resolution i...
# arrow-meta
r
I was just able to implement instance resolution in the IR phase by using a
val *: Nothing
marker that can be assigned as default value to any parameter and that in the IR phase it gets replaced by an expression body call to the factory that provides the instance at each referenced call site. With this approach we are implementing the KEEP with neither new syntax nor annotations. We can exploit bottom types as expression holes that we replace with the compiler. This is not limited to value arguments in calls and value parameters of functions since ``*`` is a valid value for any type given Nothing is a sub type of all types we can scan the entire tree of value holes ``*`` to replace them for any expression regardless of their position even when they are not parameter or function arguments. This will allow type class injection and scopes at any point that accepts an expression for example function value parameters but also val assignments and others inside function bodies.
🎉 4