Solidity for multiple files and multiple contracts per file.

Why not make std::string a part of Source? When and why would one be used without the other?