Oplossing

> TypeTreeRep := proc(x)
if type(x, `symbol`) or type(x, `numeric`) then
whattype(x);
else
[whattype(x), map(TypeTreeRep, [op(x)])];
fi;
end:

> for n from 1 to nops(ExprList) do
TypeTreeRep(ExprList[n]);
od;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]