Does Arrow Meta in Kotlin 1.4 mean that all `.fix(...
# arrow-meta
c
Does Arrow Meta in Kotlin 1.4 mean that all
.fix()
and
.k()
calls will be unnecessary?
r
when the IR backend is stable in 1.4.x and if you use the Meta plugin then yes 🙂
fix becomes a proof that automatically coerces for you implicitly.
k() will be gone since List can be Kinded and proofed ad-hoc
all K wrappers will be gone at some point.
Some code that hopefully speaks better of what’s going on in the meta tests https://github.com/arrow-kt/arrow-meta/blob/master/compiler-plugin/src/test/kotlin/arrow/meta/plugins/typeclasses/kinds.kt
If you don’t use the plugin then you’ll still have to use fix() so that remains an option for codebases that choose not to for whatever reason.
fix is now a type level proof
c
That's very nice! Do you have an estimate on when this will be a available? I heard Compose encourages to use the alpha version, what do you recommend?
r
We will release an experimental alpha of Meta as soon as we finish the 1.4 migration that @Rachel and @Imran/Malic are working on and it’s almost there. The the first stable Meta release is when the Kotlin teams announces IR is stable in one of the 1.4.x releases if it all gos as expected 🙂
c
How unstable will be the experimental alpha? I'm tempting to try it out 🤔 Will it need a specific IntelliJ install, or is it all done through Gradle?
r
A compiler plugin and the IDE companion plugin that cooperates with the Kotlin plugin
We are not sure since it had not yet been tried at large but we are committed to improve it since all Arrow infra is gonna rely on it in the same way you rely on Kotlin Serializations and other for other purposes.
What we tried works and we have plans to also use it internally at 47 in large projects including hybrid frontend/backends
c
Nice!