GLSL Problema: vários shaders em um programa

Devo ter entendido algo errado com shaders:

Pensei que, como você pode anexar vários shaders a um programa, seria possível anexar mais de um shader de fragmento, como exemplo: Uma textura de caixa renderizada com uma modulação de cores refração.

Mas, aparentemente, esse não é o caso, pois você pode ter apenas uma função principal por program

Como posso contornar o limite da função principal e permitir qualquer combinação dinâmica de vários shaders de fragmento que estão no mesmo programa e chamados um após o outr

questionAnswers(4)

yourAnswerToTheQuestion