I came across Kyber Network DEX contract. On the very first line, they had declared a variable with ERC20 type as follows:
ERC20 constant internal ETH_TOKEN_ADDRESS = ERC20(0x00eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee);
And this is used throughout the contract. What does it means? As far I know, only address, uint, string, bytes, bool etc are some types.
Here's the code of smart contract: https://etherscan.io/address/0x964f35fae36d75b1e72770e244f6595b68508cf5#code