A GLSL code generating DSL embedded in Haskell