protected static function __indexLens($index) { $arraySetter = Module::curry(function ($i, $arr, $val) { $arr[$i] = $val; return $arr; }); /** @noinspection PhpParamsInspection */ $indexLens = self::makeLens(Arrays::index(), $arraySetter); return $indexLens($index); }