Previous version of LambdaCube 3D as Embedded Domain Specific Language in Haskell. Check the latest system:
LambdaCube 3D is a Haskell-like purely functional language for GPU. Try it out:
Quake 3 map viewer in Haskell using LambdaCube 3D
LambaCube 3D workshop at LambdaConf 2017