Program:  Give them a type.

Each program is associated to a shader, we use a program_type to know which
shader is associated to the program