What's the difference between eosio.token and currency.hpp found in the contracts/eosiolib folder?
They seem quite similar.
eosio.token is the system contract that handles standard EOS transactions. currency.hpp is a header for a contract for creating currencies on the EOS network, like tokens for dapps. So they have roughly the same purpose, but one is a system contract and the other a regular contract that can be uploaded to any account.