I feared I have to follow your convention, because I need to post snippets on this forum when asking for help
Fear is not a good reason to follow the T prefix convention for types. It's a convention but, there is a reason it exists (a good one too!.) The reason is that it is _often_ useful and important to _know_ you are dealing with a type and not something else.
Consider this code:
var
a : set of char;
i : integer;
x : char;
type
b : 1..10; // apparently in FPC ":" can be used instead of "=" in type declarations ???
c = 1..10;
TSOME_RANGE : 1..10;
Direction : (north, east, south, west); // accepts ":" instead of "=" ???
TDIRECTION_ENUM1 = (north, east, south, west); // "=" as expected
// these are not in accordance with standard Pascal type declarations
TDIRECTION_ENUM1 : (north, east, south, west); // : ???
TDIRECTION_ENUM1 = : (north, east, south, west); // = : ???
var
d : Direction;
e : TDIRECTION;
begin
for x in a do ;
for i in b do ;
for i in c do ;
for i in TSOME_RANGE do ;
for d in Direction do ;
for e in TDIRECTION_ENUM1 do ;
Look at the lines that start with for <varname> in <something> do ;
The problem is the <something>. In those statements it is difficult to ascertain at a glance what the extent of the "for" is. This is because a, b and c could be one of an enumeration, a set or a range.
It's much nicer and clearer when not only the type is prefixed with a T but also when it is postfixed with something along the lines of "RANGE", "SET", "ENUM" because it's much easier to have at least some idea of what the statement is doing.
Aside from the examples above. Consider you have a "Database" type. Most programmers would like to have a variable named "Database" to refer to the type "Database" but, because the name of the variable has to be different than the name of the type and, because Pascal is not case sensitive, it makes sense to have some way to identify the type. A very common convention used by Pascal programmers is to prefix the type with T for that reason. That way you can have a "var Database : TDATABASE;" which is logical and sensible. In C that is not necessary only because the language is case sensitive and just using different case for the variable name is enough to distinguish it from an, otherwise, identically named datatype.
Talking about conventions, one I wish Pascal programmers would follow is to _always_ put () after function names that require no parameters. When you see a statement like this:
b could be some global variable located somewhere or a function, also located "somewhere". Now to figure out what that statement does, the programmer has to dig out from who knows where what b is. People who are obsessed with typing less will name the function with a single letter or few letters, this usually causes a simple text search for it to return a large number of invalid hits the programmer has to wade through. Too bad the obsession with typing less cannot be converted into obsessing about making the program easy to understand (of all obsessions, that one might be a good one.)
You shouldn't complain about Pascal being wordy. For functions that take no parameters and for simple logical expressions, Pascal saves you from typing two characters (the parentheses that C requires but Pascal doesn't.)
Now, on a completely different note. The lines that contain ??? deviate from the expected way types are declared in Pascal. I don't know if that is intended in FPC but, the reference manual does not show that ":" (by itself) and "= :"as acceptable in a type definition.
HTH.