This is pretty fascinating, although superficially a lot of this seems more complex than just plain opengl. For example:<p><pre><code>  clear = FrameBuffer $ (DepthImage @1 1000, ColorImage @1 navy)   -- ...
  mapFragments s fs = Accumulate colorFragmentCtx PassAll (\a -&gt; FragmentOutRastDepth $ fs a) s clear

</code></pre>
Compared with:<p><pre><code>  glClearColor(...)
  glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)

</code></pre>
State management is a nightmare in OpenGL, but that second chunk of code is a lot easier to wrap my head around even if it&#x27;s objectively worse in a lot of ways. Still though, I&#x27;m waiting to see the language tutorial before I make up my mind. Looks interesting!