pragma abicoder v2;

contract C {
    function f(uint a, bytes memory b, uint c)
            public pure returns (uint, uint, bytes1, uint) {
        return (a, b.length, b[3], c);
    }

    function f_external(uint a, bytes calldata b, uint c)
            external pure returns (uint, uint, bytes1, uint) {
        return (a, b.length, b[3], c);
    }
}
// ----
// f(uint256,bytes,uint256): 6, 0x60, 9, 7, "abcdefg" -> 6, 7, "d", 9
// f_external(uint256,bytes,uint256): 6, 0x60, 9, 7, "abcdefg" -> 6, 7, "d", 9