This gives a contract the same ability to interact with other contracts (with its address as `msg.sender`), as an externally-owned account, right?

    function call(address _contract, bytes calldata _calldata)
        external returns (bool, bytes memory)
    {
        return _contract.call(_calldata);
    }