Solidity for multiple files and multiple contracts per file.

So why does it return Declaration* and not MagicVariableDeclaration*, if they're all magic variables?

Please document the three methods accordingly.