pragma abicoder v2; library L { function reverse(uint[2] calldata _a) internal pure returns (uint, uint) { return (_a[1], _a[0]); } } contract C { using L for uint[2]; function test(uint, uint[2] calldata _a, uint) external pure returns (uint, uint) { return _a.reverse(); } } // ---- // test(uint256,uint256[2],uint256): 7, 66, 77, 4 -> 77, 66