Slight adjustment to shader code.
Make the shader output be a string.
Use keywords instead of symbols.
Use recursion.