Я пытаюсь следовать этой документации о Lens
в Стрелке. Однако, когда я пытаюсь написать Lens
data class Player(val health: Int)
val playerLens: Lens<Player, Int> = Lens(
get = { player -> player.health },
set = { player, value -> player.copy(health = value) }
)
, я получаю следующую ошибку:
4 type arguments expected for operator fun <S, T, A, B> invoke(): PLens<S, T, A, B>
Я вижу, что Lens<S, T>
является typealias для PLens<S, S, T, T>
, так почему эта компиляцияошибка?
Kotlin версия 1.3.50
Arrow Optics версия 0.10.0