contract IERC20Token {
    // these functions aren't abstract since the compiler emits automatically generated getter functions as external

    function allowance(address _owner, address _spender) public pure returns (uint256 remaining) { _owner; _spender; remaining; }
    function transfer(address _to, uint256 _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
}
function allowance(address _owner, address _spender) public pure returns (uint256 remaining) { _owner; _spender; remaining; }

// these functions aren't abstract since the compiler emits automatically generated getter functions as external