In Mathematica there are compound expressions and atomic expressions.
True for is atomic, and may behave in "strange" ways. These must be considered indivisible by users, and only standard and documented ways should be used to extract information from them.
All the rest are compound expressions and have the form
head[arg1, arg2, ...]. Here
head is the head of the compound expression.
Atomic expressions have "heads" too, by convention. These do not indicate a structure. They are used in practice to indicate the type of the atomic expression so we can programatically distinguish an
Integer from a
Real. The fact that
Integer does not imply that
1 is somehow represented as
Finally a warning:
Don't be fooled by what e.g.
FullForm might show for an atomic expressions (e.g.
Rational[2,3] which looks like it has a structure: an explicit head and two arguments. In reality it doesn't.
True. In practice atomic objects vary in how they behave when you attempt to disassemble them, but none of them work with all functions that would allow looking into their structure (such as pattern matching on the structure
Depth, etc.). When you work with some objects, you must read their documentation and only handle them in standard and documented ways. Otherwise your code might misbehave in ways you didn't expect.
Other than the most basic data types in Mathematica (
Rational, etc.) there are more complex atomic objects such as
MeshRegion, etc. These are made to be atomic so that they can have a more efficient internal implementation.