[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                          ! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ#Safe,<=DT[A type in the GPU.  A GPU array. A GPU 4x4 float matrix. A GPU 3x3 float matrix.A GPU 2x2 float matrix.A GPU 4D boolean vector.A GPU 3D boolean vector.A GPU 2D boolean vector.A GPU 4D integer vector.A GPU 3D integer vector.A GPU 2D integer vector.A GPU 4D float vector.A GPU 3D float vector. JA GPU 2D float vector. NB: This is a different type from Data.Vect.Float..\!The type of a generic expression."A GPU cube texture handler.#A GPU 2D texture handle.$A GPU integer.% A GPU float.&A GPU boolean.]/Expressions that are transformed to statements.^An expression._)CPU integer, used in the shader compiler.Z[`abcd e  !\f"g#h$i%j&klmn]opq^rstuvwxyz{|}~_D[d`abc e  !\f"g#h$i%j&klmn]poq^{srztuvwxy|}~_/[`abcd e    !\f"g#h$i%j&klmn]opq^rstuvwxyz{|}~_Safe%&*,9:;<=?DQR )VUseful type for constructing vectors and matrices from scalars, vectors and matrices.Floats or vectors.Types that can be multiplied.eAvoid evaluating the expression of the argument more than one time. Conditionals and loops imply it.IRebound if. You don't need to use this function, with -XRebindableSyntax.=The position of the vertex (only works in the vertex shader).=The data of the fragment (only works in the fragment shader).DThe coordinates of the fragment (only works in the fragment shader).YIf the fragment belongs to a front-facing primitive (only works in the fragment shader).;You can call *vec* and mat* with a single scalar or with a )? containing enough components. This function helps you create )s. Examples: ]vec2 0 mat2 $ Vec2 2 4 # Vec2 1 3 vec4 $ mat2 (0 # 1 # vec2 2) # 9 -- 9 is discarded mat4 $ 5 # vec2 5 # Vec3 1 2 3 # Mat2 (vec2 0) (Vec2 1 2) # mat3 0 vec4 $ 1 # vec2 0 -- Not enough components, fails with "Couldn't match type -- 'Prelude.False  with 'Prelude.True " (because -- Components Vec4 <=? 3 ~ False).'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~WMaximum number of iterations (should be as low as possible, must be an integer literal) Initial value&Iteration -> Old value -> (Next, Stop)     '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     I7J7K6L6M8N3O2P44Q4R4S4T45None%&*+,9:;<=DQRT !"#$%&'()*+,-./0123456789:;<= !"#$%&'),-./012345 !"#$%&'()*+,-./01234567None%&*,9:;<=DOQRTA function from a set of uniforms and a set of inputs (attributes or varyings) to a set of outputs (varyings). It can be used to represent a reusable piece of shader code, other than actual shaders.An heterogeneous list of >s.A type-level set of >s.? Create a  with a function.@>ABCDEFGHIJ?KLMNOP $)-@>CBAIJ?@>ABCDEFGHIJ?KLMNOP4None *,5:DOQRTMThe RGBA color of the fragment (1.0 = #FF), or the data of the draw buffers.The position of the vertex.A  with only a  output. for the output of  VartexShader.A  with a  output.QQNone %&*,:OQRTR%The context is where an action should be put. Only for-loops are considered contexts, because there is no reason to put an action inside another block. Of course, an action could have many contexts (e.g. for(..) { for (..) { act; } }), but only one is actually needed to compile the action.S3The contexts of the expressions used in the action.T7All the contexts (including those of the dependencies).UCompile a list of ^, sharing their actions.V,Build an action graph with shallow contexts.WTransform every context.XFind and build the deep context of this action. Returns a deep context and a new graph with the deep contexts of this action and of its dependencies.Y Compile an ^L. Returns the compiled expression, the map of dependencies and the context.)ZRST[\]^_`abcdefghijklmnopqUrsVWXYtuvwxyzmnopyZRST[\]^_`abcdefghijklmnopqUrsVWXYtuvwxyzNone :<=?ADRT{|}~{|}~ {|}~SafeAn RGBA 32-bit color. Create a  with alpha set to 255. None:<=DR Backend API.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~A):PU(klmnopqr     "#$%&'*+,-./0123456789;<=>?@BCDEFGHIJKLMNOSTVWXYZ[\]^_`abcdefghijst !QRuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneI+A Texture ready to be passed as an uniform.      !"#$%&'()*+,-./0123456789:;<=>?@ABC{A):PU(klmnopqr     "#$%&'*+,-./0123456789;<=>?@BCDEFGHIJKLMNOSTVWXYZ[\]^_`abcdefghijst !QRuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@AB      !"#$%&'()*+,-./0123456789:;<=>?@AB      !"#$%&'()*+,-./0123456789:;<=>?@ABCNone+,9:;<=DOQRT3CPU types convertible to GPU types (as attributes).1CPU types convertible to GPU types (as uniforms).J$The mirror type of a certain global. For instance:  data T = T Vec3 Float -- In the shader module data T = T Vec3 Float -- CPU version of the uniform type type CPUMirror GPU.T = T 9This kind represents the way you are setting a GPU value./Single CPU type (only for types with one field)\Mirror type (a data type identical to the GPU one but with CPU single types instead of GPU)QHIJHIJIHIJNoneKBlend function parameters.UBlend operator.Y Blend mode` Standard transparency (default).aAdditive blend mode.KLMNOPQRSTUVWXYZ[\]^_`aKMLNOPQRSTUVWXYZ[\]^_`aK LMNOPQRSTUVWXYZ[\]^_`aNoneb8Operation to perform to the stencil value in the buffer.cKeep it unchanged.d Invert it.eSet it to zero.f*Replace it with the masked fragment value.gIncrement it if not maximum.hDecrement it if not zero.i0Increment it, wrapping it if it would overflow.j1Decrement it, wrapping it if it would underflow.kOperations to perform if the stencil test fails, if the stencil test passes but the depth test fails, and if both the stencil test and the depth test pass.miOperation to perform between the masked fragment stencil value and the masked destination stencil value.n Never pass.o Always pass.p<q<=r s =t==u/=v/Function type, fragment stencil value and mask.y"Use the same value for both sides.z6Use a different value for each side (front and back).{ Stencil mode.bcdefghijklmnopqrstuvwxyz{|becdfghijklmtnopqrsuvwxyz{|bcdefghijklmnopqrstuvwxyz{|None<=DR }~}} }~None<=#Average of the four nearest pixels.Nearest pixel. A texture.  None 4x4 translation matrix.4x4 rotation matrix (X axis).4x4 rotation matrix (Y axis).4x4 rotation matrix (Z axis).4x4 rotation matrix.4x4 scale matrix."4x4 perspective projection matrix.#4x4 orthographic projection matrix.4x4 FPS camera matrix.4x4 "look at" camera matrix.3x3 translation matrix.3x3 rotation matrix.3x3 scale matrix. Axis.AngleNearFarFOV Aspect ratioNearFarLeftRightBottomTopEyePitchYawEyeTargetUp   None:DORT  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~HIIH&%$#" ! |`abcdefghijklmnopqrstuvwxyz{~HGUVWXYZF[\]CDB')(@AA>??<==455233011:;;899677.//,--*++IJKLMNOPQRST}E_^ None%&),5  None%&),5IAn uniform that represents the view matrix used in the default 2D shader.TAn uniform that represents the transformation matrix used in the default 2D shader.CAn uniform that represents the depth used in the default 2D shader.EAn uniform that represents the texture used in the default 2D shader.  None%&*,9:;<=ADOPQRTCompatible shaders..The attributes used in the default 2D program.,The uniforms used in the default 2D program..The attributes used in the default 3D program.,The uniforms used in the default 3D program.=A vertex shader associated with a compatible fragment shader. Create a  from the shaders.      !None%&+,9:;<=DOQRT A set of attributes and indices. #A heterogeneous list of attributes.$Remove an attribute from a geometry.+   >Attribute constructor (or any other function with that type).!"#$%&'()*+,-./01234  !#   !"#$%&'()*+,-./01234None %&,:DQRTA 2D geometry.A 3D geometry.%A list of the attributes of a vertex.For instance: /Attr Position3 p :~ Attr UV u :~ Attr Normal3 nCreate a generic . Create a E using a list of indices to a list of vertices. This is faster than . Create a 3D .Create an extended 3D . Create a 2D .Create an extended 2D . Create a 3D  using a list of indices.Create an extended 3D  using a list of indices. Create a 2D  using a list of indices.Create an extended 2D  using a list of indices. Remove the UV and 5 attributes from a 3D Geometry.6(Position, UV, Normal)"(Position, Texture UV coordinates)78967895NoneNonebecdfghijklmtnopqrsuvwxyz{|{|xyzvwmnopqrstuklbcdefghij None Creates a  from a list of pixels.Creates a float  from a list of vectors._Change the Texture minifying and magnifying functions. This doesn't work on sublayer textures.Generate a 1x1 texture.Width.Height.List of pixelsWidth.Height.Array of pixel components. Texture hashWidth.Height.List of vectors.  NoneKMLNOPQRSTUVWXYZ[\]^_`aYZ[\]^_UVWXKLMNOPQRST`a"None%&,:DQRThe value of a GPU uniform.)A geometry associated with some uniforms.Add a Global to an Object.:;<=>?@ABCDEFGHIJ:;<=>?@ABCDEIFGH:;<=>?@ABCDEFGHIJ2None *,9:;<=DQRRemove a global from an .Modify the global of an ). This doesn't work with mirror globals.1Enable blending and set the blending mode for an .Disable blending for a .7Enable stencil testing and set the stencil mode for an .Disable stencil testing on a  of objects.#Enable/disable depth testing for a .3Enable/disable writing into the depth buffer for a .IEnable/disable writing into the four channels of the color buffer for a .Enable face culling.Disable face culling.An empty object.An object with a specified .Modify the geometry of an . Create a  from a pure value. The first argument is ignored, it just provides the type (you can use the constructor of the GPU type). You can use this to set the value of a shader uniform. Create a  activating a +. Note that the corresponding CPU type of  Sampler2D is , not Texture. Create a  using the size of a . Create a # using the size of the framebuffer.Like  but for mirror types.K"J`a"`aJK224#None%&,DOTTemporary texture.,A layer with a return value. It may also be U, this means that there are some protected temporary resources and you have to call D to turn it into a normal layer. The second parameter prevents the s from being returned by a  NonDrawable layer in a drawable operation.Note that layers are monads: flip (L) is equivalent to over for Drawable layers, while (Ms), in combination with the *ToTexture functions, can be used to achieve the same effect of the subLayer functions.An  associated with a program.*Clear some buffers before drawing a Layer.UFree the temporary resources associated with a NonDrawable layer, before drawing it.Make the type of a simple  more generic. Make a / permanent. Its lifetime is still bound to the  returned. 'Draw a Layer using a temporary texture.N0Draw a Layer using a list of temporary textures. Draw a  to a depth . Draw a  to a color  and a depth . Draw a  to a color # with an additional stencil buffer.Draw a  to a %, reading the content of the texture.Draw a  to a depth >, reading the content of the texture. Not supported on WebGL.Combination of  and . Not supported on WebGL.# with an additional stencil buffer.Draw a + with multiple floating point colors (use  Fragment2,  Fragment3, etc.) to some s and to a depth Texture.Draw a + with multiple floating point colors (use  Fragment2,  Fragment3, etc.) to some %s with an additional stencil buffer.-OPQRSTUVWXYZ[\]^  N_ Textures width.Textures height.Layer to draw. Textures width.Textures height.Layer to draw. Texture width.Texture height.Texture width.Texture height.First pixel to read X.First pixel to read Y.Width of the rectangle to read. Height of the rectangle to read.Layer to draw.Texture width.Texture height.First pixel to read X.First pixel to read Y.Width of the rectangle to read. Height of the rectangle to read.Layer to draw.Texture width.Texture height.First pixel to read X.First pixel to read Y.Width of the rectangle to read. Height of the rectangle to read.Layer to draw.Texture width.Texture height.First pixel to read X.First pixel to read Y.Width of the rectangle to read. Height of the rectangle to read.Layer to draw.Texture width.Texture height.Number of colors.Layer to draw.Texture width.Texture height.Number of colors.Layer to draw.`ab*OPQRSTUVWXYZ[\]^  N_   OPQRST UVWXYZ[\]^  N_   `ab None3Create a simple Layer from a Program and an Object.Draw the first Layer over the second one. This means that the first Layer will use the same buffers (color, depth, stencil) of the second, but the visibility of the objects still depends on their depth. Alias for .Use a  as a  on another.Use a  as a depth  on another.Combination of  and . with a stencil buffer.Extended version of - that reads and converts the Texture pixels.Extended version of . Not supported on WebGL.Extended version of . Not supported on WebGL.# with an additional stencil buffer.Draw a + with multiple floating point colors (use  Fragment2,  Fragment3, etc.) to some (s and use them to create another Layer. Combination of  and .!# with an additional stencil buffer.Texture width.Texture height.Layer to draw on a .Layers using the texture.Texture width.Texture height.Layer to draw on a depth .Layers using the texture.Texture width.Texture height.Layer to draw on the s. Color, depth.Texture width.Texture height.Layer to draw on a Color.Texture width.Texture height.First pixel to read XFirst pixel to read YWidth of the rectangle to readHeight of the rectangle to readLayer to draw on a .Function using the texture.Texture width.Texture height.First pixel to read XFirst pixel to read YWidth of the rectangle to readHeight of the rectangle to readLayer to draw on a depth .Layers using the texture.Texture width.Texture height.First pixel to read XFirst pixel to read YWidth of the rectangle to readHeight of the rectangle to readLayer to draw on a Layers using the texture.Texture width.Texture height.First pixel to read XFirst pixel to read YWidth of the rectangle to readHeight of the rectangle to readLayer to draw on a .Function using the texture.Textures width.Textures height.Number of colors.Layer to draw.Function using the textures. Textures width.Textures height.Number of colors.Layer to draw.<Function using the buffers textures and the depth texture.!Textures width.Textures height.Number of colors.Layer to draw.Function using the texture.)      !) !      !1$None %&,9:;<=DI"A state monad on top of .#The state of the " monad.$ Create a #.%Initialize the render engine.cRun a " action.d Execute a " action.e Evaluate a " action.& Viewport.(Manually allocate a  in the GPU.)Manually allocate a  in the GPU.*Manually allocate a  in the GPU.+Manually delete a K from the GPU. Note that if you try to draw it, it will be allocated again.,Manually delete a  from the GPU.-Manually delete a  from the GPU..Draw a .fDraw an .gGet the dimensions of a .hSet the program.iDraw a  on some textures./ Perform a  action in the " monad.jGet the #.G"klmn#opqrstuvwxyz{|}~$Viewport widthViewport height%cdAction.State.eAction.State.&Width.Height.'()*+,-.fghi Draw buffersTextures contentsWidthHeight Layer to draw=Color inspecting function, start x, start y, width, height!Depth inspecting, function, etc./j"#$%cde&'()*+,-.fgh/j3"klmn#opqrstuvwxyz{|}~$%cde&'()*+,-.fghi/jNone0/Run a Draw action using an IORef and a context.010Context (use the appropriate backend functions) Draw actionState (create it with $)23"#$%&'()*+,-./0123"#0123$%'.&()*+,-/0123None*,:DQR4:2D objects compatible with the standard 2D shader program.5 A simple 2D Object, without the  matrix.7A rectangle with a specified .8A 2D object with a specified .99A rectangle with the aspect ratio adapted to its texture.:Set the depth of a 2D .;^A rectangle with the size and aspect ratio adapted to the screen, assuming that you're using = or G.<-Create a group of objects with a view matrix.=1Create a group of objects with a view matrix and G.>XCreate a group of objects with a view matrix, depending on the size of the framebuffer.?A  with the standard 2D program.@Translate a 2D .A Rotate a 2D .B Scale a 2D .C Scale a 2D  in two dimensions.D Scale an % so that it has the same size as the  , assuming = or G.E Scale an - so that it has the same aspect ratio as the  1scaleV $ Vec2 1 (texture height / texture width).FTransform a 2D .Transform a 2D .G1Convert the screen coordinates to GL coordinates.456789:;<=>?@ABCDEFGViewport size.456789:;<=>?@ABCDEFG5479;:8@ABCDEF<=>?G6456789:;<=>?@ABCDEFGNone *,9:;<=DQRH:3D objects compatible with the standard 3D shader program.I"A standard 3D object, without the  matrix.KA cube with a specified .LA 3D object with a specified .M-Create a group of objects with a view matrix.NHCreate a group of objects with a view matrix and perspective projection.OICreate a group of objects with a view matrix and orthographic projection.PXCreate a group of objects with a view matrix, depending on the size of the framebuffer.QA  with the standard 3D program.RTranslate a 3D Object.S Rotate a 3D  around the X axis.T Rotate a 3D  around the Y axis.U Rotate a 3D  around the Z axis.V Rotate a 3D  around a vector.W Scale a 3D .X Scale a 3D  in three dimensions.YTransform a 3D .ZW4x4 perspective projection matrix, using width and height instead of the aspect ratio.HIJKLMNNearFarFOV View matrixONearFarLeftRightBottomTop View matrixPQRSTUVWXYZNearFarFOV Viewport size#HIJKLMNOPQRSTUVWXYZ#IHKLRSTUVWXYMNOPQZJHIJKLMNOPQRSTUVWXYZ%None      !"#$%&'()*+,-./01234567859:;<=>J`a      !?&'(&')&*+&,-&./&*0&*1&*2&*345566778899::;;<<==>>??@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~;;<<==      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkllmnopqrstuv_wxyz{||}~ll                                                            !!     """""""########################              $$$$$$$$$$$$ $!$"#$%&'()*+,-./0123456789:;<=>?/@A123BCD4569EFGHIJKLMNO4G@ABCDPQRSTUVWXYZ[\]^_H`abcdefghijklmnopqrstuvwxyz{|}~     V&&&&&& !"#$%&'()*+,-./0123456789:;<=>>?@ABCDEEFGHIJ[KLMNOPQRSTUVWXYZ[\]^_`abbcdefghijklmnopqrstuvwxyz{|}~                   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" " " " " """"""""""""&*&*##### #!###"###$#%#&#'#(#)#*#+#,#-#.$/$0$1$2$3$4$5$6$$7$$$$8$9$:$;$<$=$>$?$@$A$B$C$$$$$D$E$F$G$$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^_`abacadaeafagahaiajakalmnmompqrqsqqtqquqvqwqxqyqzq{q|q}q~qqqqqqqqK??>>776655#ombra-0.2.2.0-h29ECupgrZ3Ibp6AVWfWTGraphics.Rendering.Ombra.Shader$Graphics.Rendering.Ombra.Internal.GLGraphics.Rendering.Ombra.Color Graphics.Rendering.Ombra.BackendGraphics.Rendering.Ombra.ObjectGraphics.Rendering.Ombra.Blend Graphics.Rendering.Ombra.Stencil'Graphics.Rendering.Ombra.Backend.OpenGL Graphics.Rendering.Ombra.Texture'Graphics.Rendering.Ombra.Transformation)Graphics.Rendering.Ombra.Shader.Default3D)Graphics.Rendering.Ombra.Shader.Default2DGraphics.Rendering.Ombra.Layer!Graphics.Rendering.Ombra.GeometryGraphics.Rendering.Ombra.ShapesGraphics.Rendering.Ombra.DrawGraphics.Rendering.Ombra.D2Graphics.Rendering.Ombra.D3.Graphics.Rendering.Ombra.Shader.Language.TypesData.Vect.FloatVec22Graphics.Rendering.Ombra.Shader.Language.Functions'Graphics.Rendering.Ombra.Internal.TList)Graphics.Rendering.Ombra.Shader.ShaderVar&Graphics.Rendering.Ombra.Shader.Stages$Graphics.Rendering.Ombra.Shader.GLSL*Graphics.Rendering.Ombra.Internal.Resource#Graphics.Rendering.Ombra.Shader.CPU'Graphics.Rendering.Ombra.Blend.Internal)Graphics.Rendering.Ombra.Stencil.Internal)Graphics.Rendering.Ombra.Texture.Internal'Graphics.Rendering.Ombra.Shader.Program*Graphics.Rendering.Ombra.Geometry.Internal(Graphics.Rendering.Ombra.Object.Internal'Graphics.Rendering.Ombra.Layer.Internal&Graphics.Rendering.Ombra.Draw.InternalGraphics.Rendering.Ombrabase Data.TuplefstsndGHC.Base$ GHC.GenericsGenericControl.Monad.IO.ClassliftIOflip.constidArrayMat4Mat3Mat2BVec4BVec3BVec2IVec4IVec3IVec2Vec4Vec3 SamplerCube Sampler2DIntFloatBool Components ToCompListCompListToMat4mat4ToMat3mat3ToMat2mat2ToBVec4bvec4ToBVec3bvec3ToBVec2bvec2ToIVec4ivec4ToIVec3ivec3ToIVec2ivec2ToVec4vec4ToVec3vec3ToVec2vec2ToFloatToBoolToInt fromInteger BoolVectorVecEqVecOrd*/+-^&&||==>=<=<>lessThan lessThanEqual greaterThangreaterThanEqualequalnotEqualanyBallBnotBnegate fromRationalradiansdegreessincostanasinacosatanatan2explogexp2log2sqrt inversesqrtabssignfloorceilfractmodminmaxclampmixstep smoothsteplength arrayLength!distancedotcross normalize faceforwardreflectrefractmatrixCompMultstoretruefalse ifThenElseloop texture2D texture2DBias texture2DProjtexture2DProjBiastexture2DProj4texture2DProjBias4 texture2DLodtexture2DProjLodtexture2DProjLod4positionfragData fragCoordfragFrontFacingintboolfloat#ShaderSVListN:- ShaderVarsFragmentShaderOutput Fragment0Fragment Fragment2 Fragment3 Fragment4 Fragment5 Fragment6 Fragment7 Fragment8 Fragment9 Fragment10 Fragment11 Fragment12 Fragment13 Fragment14 Fragment15 Fragment16VertexShaderOutputVertexFragmentShader VOShaderVars VertexShaderColorvisiblewhiteblack transparentredgreenblueyellow$fStorableColor$fHashableColor $fEqColor $fShowColorGLESCtxGLEnumGLUIntGLIntGLPtr GLPtrDiffGLSizeGLStringGLBoolBufferUniformLocationTextureProgram FrameBuffer RenderBufferVertexArrayObjectAnyArray Float32Array Int32Array UInt8Array UInt16Array nullGLPtr toGLStringnoBuffer noTexturenoVAO noUInt8ArraynoFloat32Array encodeMat2 encodeMat3 encodeMat4 encodeFloats encodeInts encodeVec2s encodeVec3s encodeVec4s encodeIVec2s encodeIVec3s encodeIVec4s encodeUShorts encodeUInt8s newByteArrayfromFloat32ArrayfromInt32ArrayfromUInt8ArrayfromUInt16Array decodeBytesglActiveTextureglAttachShaderglBindAttribLocation glBindBufferglBindFramebufferglBindRenderbuffer glBindTextureglBindVertexArray glBlendColorglBlendEquationglBlendEquationSeparate glBlendFuncglBlendFuncSeparate glBufferDataglBufferSubDataglCheckFramebufferStatusglClear glClearColor glClearDepthglClearStencil glColorMaskglCompileShaderglCompressedTexImage2DglCompressedTexSubImage2DglCopyTexImage2DglCopyTexSubImage2DglCreateBufferglCreateFramebufferglCreateProgramglCreateRenderbufferglCreateShaderglCreateTextureglCreateVertexArray glCullFaceglDeleteBufferglDeleteFramebufferglDeleteProgramglDeleteRenderbufferglDeleteShaderglDeleteTextureglDeleteVertexArray glDepthFunc glDepthMask glDepthRangeglDetachShader glDisableglDisableVertexAttribArray glDrawArrays glDrawBuffersglDrawElementsglEnableglEnableVertexAttribArrayglFinishglFlushglFramebufferRenderbufferglFramebufferTexture2D glFrontFaceglGenerateMipmapglGetAttribLocation glGetErrorglGetProgramInfoLogglGetShaderInfoLogglGetShaderSourceglGetUniformLocationglHint glIsBuffer glIsEnabledglIsFramebuffer glIsProgramglIsRenderbuffer glIsShader glIsTextureglIsVertexArray glLineWidth glLinkProgram glPixelStoreiglPolygonOffset glReadPixelsglRenderbufferStorageglSampleCoverage glScissorglShaderSource glStencilFuncglStencilFuncSeparate glStencilMaskglStencilMaskSeparate glStencilOpglStencilOpSeparateglTexImage2DUIntglTexImage2DFloatglTexParameterfglTexParameteriglTexSubImage2D glUniform1f glUniform1fv glUniform1i glUniform1iv glUniform2f glUniform2fv glUniform2i glUniform2iv glUniform3f glUniform3fv glUniform3i glUniform3iv glUniform4f glUniform4fv glUniform4i glUniform4ivglUniformMatrix2fvglUniformMatrix3fvglUniformMatrix4fv glUseProgramglValidateProgramglVertexAttrib1fglVertexAttrib1fvglVertexAttrib2fglVertexAttrib2fvglVertexAttrib3fglVertexAttrib3fvglVertexAttrib4fglVertexAttrib4fvglVertexAttribPointer glViewportgl_DEPTH_BUFFER_BITgl_STENCIL_BUFFER_BITgl_COLOR_BUFFER_BIT gl_POINTSgl_LINES gl_LINE_LOOP gl_LINE_STRIP gl_TRIANGLESgl_TRIANGLE_STRIPgl_TRIANGLE_FANgl_ZEROgl_ONE gl_SRC_COLORgl_ONE_MINUS_SRC_COLOR gl_SRC_ALPHAgl_ONE_MINUS_SRC_ALPHA gl_DST_ALPHAgl_ONE_MINUS_DST_ALPHA gl_DST_COLORgl_ONE_MINUS_DST_COLORgl_SRC_ALPHA_SATURATE gl_FUNC_ADDgl_BLEND_EQUATIONgl_BLEND_EQUATION_RGBgl_BLEND_EQUATION_ALPHAgl_FUNC_SUBTRACTgl_FUNC_REVERSE_SUBTRACTgl_BLEND_DST_RGBgl_BLEND_SRC_RGBgl_BLEND_DST_ALPHAgl_BLEND_SRC_ALPHAgl_CONSTANT_COLORgl_ONE_MINUS_CONSTANT_COLORgl_CONSTANT_ALPHAgl_ONE_MINUS_CONSTANT_ALPHAgl_BLEND_COLORgl_ARRAY_BUFFERgl_ELEMENT_ARRAY_BUFFERgl_ARRAY_BUFFER_BINDINGgl_ELEMENT_ARRAY_BUFFER_BINDINGgl_STREAM_DRAWgl_STATIC_DRAWgl_DYNAMIC_DRAWgl_BUFFER_SIZEgl_BUFFER_USAGEgl_CURRENT_VERTEX_ATTRIBgl_FRONTgl_BACKgl_FRONT_AND_BACK gl_CULL_FACEgl_BLEND gl_DITHERgl_STENCIL_TEST gl_DEPTH_TESTgl_SCISSOR_TESTgl_POLYGON_OFFSET_FILLgl_SAMPLE_ALPHA_TO_COVERAGEgl_SAMPLE_COVERAGE gl_NO_ERRORgl_INVALID_ENUMgl_INVALID_VALUEgl_INVALID_OPERATIONgl_OUT_OF_MEMORYgl_CWgl_CCW gl_LINE_WIDTHgl_ALIASED_POINT_SIZE_RANGEgl_ALIASED_LINE_WIDTH_RANGEgl_CULL_FACE_MODE gl_FRONT_FACEgl_DEPTH_RANGEgl_DEPTH_WRITEMASKgl_DEPTH_CLEAR_VALUE gl_DEPTH_FUNCgl_STENCIL_CLEAR_VALUEgl_STENCIL_FUNCgl_STENCIL_FAILgl_STENCIL_PASS_DEPTH_FAILgl_STENCIL_PASS_DEPTH_PASSgl_STENCIL_REFgl_STENCIL_VALUE_MASKgl_STENCIL_WRITEMASKgl_STENCIL_BACK_FUNCgl_STENCIL_BACK_FAILgl_STENCIL_BACK_PASS_DEPTH_FAILgl_STENCIL_BACK_PASS_DEPTH_PASSgl_STENCIL_BACK_REFgl_STENCIL_BACK_VALUE_MASKgl_STENCIL_BACK_WRITEMASK gl_VIEWPORTgl_SCISSOR_BOXgl_COLOR_CLEAR_VALUEgl_COLOR_WRITEMASKgl_UNPACK_ALIGNMENTgl_PACK_ALIGNMENTgl_MAX_TEXTURE_SIZEgl_MAX_VIEWPORT_DIMSgl_SUBPIXEL_BITS gl_RED_BITS gl_GREEN_BITS gl_BLUE_BITS gl_ALPHA_BITS gl_DEPTH_BITSgl_STENCIL_BITSgl_POLYGON_OFFSET_UNITSgl_POLYGON_OFFSET_FACTORgl_TEXTURE_BINDING_2Dgl_SAMPLE_BUFFERS gl_SAMPLESgl_SAMPLE_COVERAGE_VALUEgl_SAMPLE_COVERAGE_INVERTgl_COMPRESSED_TEXTURE_FORMATS gl_DONT_CARE gl_FASTEST gl_NICESTgl_GENERATE_MIPMAP_HINTgl_BYTEgl_UNSIGNED_BYTEgl_SHORTgl_UNSIGNED_SHORTgl_INTgl_UNSIGNED_INTgl_UNSIGNED_INT_24_8gl_FLOATgl_DEPTH_COMPONENTgl_DEPTH_STENCILgl_ALPHAgl_RGBgl_RGBA gl_RGBA32F gl_LUMINANCEgl_LUMINANCE_ALPHAgl_UNSIGNED_SHORT_4_4_4_4gl_UNSIGNED_SHORT_5_5_5_1gl_UNSIGNED_SHORT_5_6_5gl_FRAGMENT_SHADERgl_VERTEX_SHADERgl_MAX_VERTEX_ATTRIBSgl_MAX_VERTEX_UNIFORM_VECTORSgl_MAX_VARYING_VECTORS#gl_MAX_COMBINED_TEXTURE_IMAGE_UNITS!gl_MAX_VERTEX_TEXTURE_IMAGE_UNITSgl_MAX_TEXTURE_IMAGE_UNITSgl_MAX_FRAGMENT_UNIFORM_VECTORSgl_SHADER_TYPEgl_DELETE_STATUSgl_LINK_STATUSgl_VALIDATE_STATUSgl_ATTACHED_SHADERSgl_ACTIVE_UNIFORMSgl_ACTIVE_ATTRIBUTESgl_SHADING_LANGUAGE_VERSIONgl_CURRENT_PROGRAMgl_NEVERgl_LESSgl_EQUAL gl_LEQUAL gl_GREATER gl_NOTEQUAL gl_GEQUAL gl_ALWAYSgl_KEEP gl_REPLACEgl_INCRgl_DECR gl_INVERT gl_INCR_WRAP gl_DECR_WRAP gl_VENDOR gl_RENDERER gl_VERSION gl_NEAREST gl_LINEARgl_NEAREST_MIPMAP_NEARESTgl_LINEAR_MIPMAP_NEARESTgl_NEAREST_MIPMAP_LINEARgl_LINEAR_MIPMAP_LINEARgl_TEXTURE_MAG_FILTERgl_TEXTURE_MIN_FILTERgl_TEXTURE_WRAP_Sgl_TEXTURE_WRAP_T gl_TEXTURE_2D gl_TEXTUREgl_TEXTURE_CUBE_MAPgl_TEXTURE_BINDING_CUBE_MAPgl_TEXTURE_CUBE_MAP_POSITIVE_Xgl_TEXTURE_CUBE_MAP_NEGATIVE_Xgl_TEXTURE_CUBE_MAP_POSITIVE_Ygl_TEXTURE_CUBE_MAP_NEGATIVE_Ygl_TEXTURE_CUBE_MAP_POSITIVE_Zgl_TEXTURE_CUBE_MAP_NEGATIVE_Zgl_MAX_CUBE_MAP_TEXTURE_SIZE gl_TEXTURE0 gl_TEXTURE1 gl_TEXTURE2 gl_TEXTURE3 gl_TEXTURE4 gl_TEXTURE5 gl_TEXTURE6 gl_TEXTURE7 gl_TEXTURE8 gl_TEXTURE9 gl_TEXTURE10 gl_TEXTURE11 gl_TEXTURE12 gl_TEXTURE13 gl_TEXTURE14 gl_TEXTURE15 gl_TEXTURE16 gl_TEXTURE17 gl_TEXTURE18 gl_TEXTURE19 gl_TEXTURE20 gl_TEXTURE21 gl_TEXTURE22 gl_TEXTURE23 gl_TEXTURE24 gl_TEXTURE25 gl_TEXTURE26 gl_TEXTURE27 gl_TEXTURE28 gl_TEXTURE29 gl_TEXTURE30 gl_TEXTURE31gl_ACTIVE_TEXTURE gl_REPEATgl_CLAMP_TO_EDGEgl_MIRRORED_REPEAT gl_FLOAT_VEC2 gl_FLOAT_VEC3 gl_FLOAT_VEC4 gl_INT_VEC2 gl_INT_VEC3 gl_INT_VEC4gl_BOOL gl_BOOL_VEC2 gl_BOOL_VEC3 gl_BOOL_VEC4 gl_FLOAT_MAT2 gl_FLOAT_MAT3 gl_FLOAT_MAT4 gl_SAMPLER_2Dgl_SAMPLER_CUBEgl_VERTEX_ATTRIB_ARRAY_ENABLEDgl_VERTEX_ATTRIB_ARRAY_SIZEgl_VERTEX_ATTRIB_ARRAY_STRIDEgl_VERTEX_ATTRIB_ARRAY_TYPE!gl_VERTEX_ATTRIB_ARRAY_NORMALIZEDgl_VERTEX_ATTRIB_ARRAY_POINTER%gl_VERTEX_ATTRIB_ARRAY_BUFFER_BINDINGgl_COMPILE_STATUS gl_LOW_FLOATgl_MEDIUM_FLOAT gl_HIGH_FLOAT gl_LOW_INT gl_MEDIUM_INT gl_HIGH_INTgl_FRAMEBUFFERgl_RENDERBUFFERgl_RGBA4 gl_RGB5_A1 gl_RGB565gl_DEPTH_COMPONENT16gl_STENCIL_INDEX8gl_RENDERBUFFER_WIDTHgl_RENDERBUFFER_HEIGHTgl_RENDERBUFFER_INTERNAL_FORMATgl_RENDERBUFFER_RED_SIZEgl_RENDERBUFFER_GREEN_SIZEgl_RENDERBUFFER_BLUE_SIZEgl_RENDERBUFFER_ALPHA_SIZEgl_RENDERBUFFER_DEPTH_SIZEgl_RENDERBUFFER_STENCIL_SIZE%gl_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE%gl_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME'gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL/gl_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACEgl_MAX_DRAW_BUFFERSgl_DRAW_BUFFER0gl_DRAW_BUFFER1gl_DRAW_BUFFER2gl_DRAW_BUFFER3gl_DRAW_BUFFER4gl_DRAW_BUFFER5gl_DRAW_BUFFER6gl_DRAW_BUFFER7gl_DRAW_BUFFER8gl_DRAW_BUFFER9gl_DRAW_BUFFER10gl_DRAW_BUFFER11gl_DRAW_BUFFER12gl_DRAW_BUFFER13gl_DRAW_BUFFER14gl_DRAW_BUFFER15gl_MAX_COLOR_ATTACHMENTSgl_COLOR_ATTACHMENT0gl_COLOR_ATTACHMENT1gl_COLOR_ATTACHMENT2gl_COLOR_ATTACHMENT3gl_COLOR_ATTACHMENT4gl_COLOR_ATTACHMENT5gl_COLOR_ATTACHMENT6gl_COLOR_ATTACHMENT7gl_COLOR_ATTACHMENT8gl_COLOR_ATTACHMENT9gl_COLOR_ATTACHMENT10gl_COLOR_ATTACHMENT11gl_COLOR_ATTACHMENT12gl_COLOR_ATTACHMENT13gl_COLOR_ATTACHMENT14gl_COLOR_ATTACHMENT15gl_DEPTH_ATTACHMENTgl_STENCIL_ATTACHMENTgl_DEPTH_STENCIL_ATTACHMENTgl_NONEgl_FRAMEBUFFER_COMPLETE$gl_FRAMEBUFFER_INCOMPLETE_ATTACHMENT,gl_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT$gl_FRAMEBUFFER_INCOMPLETE_DIMENSIONSgl_FRAMEBUFFER_UNSUPPORTEDgl_FRAMEBUFFER_BINDINGgl_RENDERBUFFER_BINDINGgl_MAX_RENDERBUFFER_SIZE gl_INVALID_FRAMEBUFFER_OPERATION$fStorableIVec4$fStorableIVec3$fStorableIVec2 ActiveTextureGLevalGLgetCtx activeTexture attachShaderbindAttribLocation bindBufferbindFramebufferbindRenderbuffer bindTexturebindVertexArray blendColor blendEquationblendEquationSeparate blendFuncblendFuncSeparate bufferData bufferSubDatacheckFramebufferStatusclear clearColor clearDepth clearStencil colorMask compileShadercompressedTexImage2DcompressedTexSubImage2DcopyTexImage2DcopyTexSubImage2D createBuffercreateFramebuffer createProgramcreateRenderbuffer createShader createTexturecreateVertexArraycullFace deleteBufferdeleteFramebuffer deleteProgramdeleteRenderbuffer deleteShaderdeleteVertexArray deleteTexture depthFunc depthMask depthRange detachShaderdisabledisableVertexAttribArray drawArrays drawElements drawBuffersenableenableVertexAttribArrayfinishflushframebufferRenderbufferframebufferTexture2D frontFacegenerateMipmapgetAttribLocationgetErrorgetProgramInfoLoggetShaderInfoLoggetShaderSourcegetUniformLocationhintisBuffer isEnabled isFramebuffer isProgramisRenderbufferisShader isTexture isVertexArray lineWidth linkProgram pixelStorei polygonOffset readPixelsrenderbufferStoragesampleCoveragescissor shaderSource stencilFuncstencilFuncSeparate stencilMaskstencilMaskSeparate stencilOpstencilOpSeparatetexImage2DUInttexImage2DFloat texParameterf texParameteri texSubImage2D uniform1f uniform1fv uniform1i uniform1iv uniform2f uniform2fv uniform2i uniform2iv uniform3f uniform3fv uniform3i uniform3iv uniform4f uniform4fv uniform4i uniform4ivuniformMatrix2fvuniformMatrix3fvuniformMatrix4fv useProgramvalidateProgramvertexAttrib1fvertexAttrib1fvvertexAttrib2fvertexAttrib2fvvertexAttrib3fvertexAttrib3fvvertexAttrib4fvertexAttrib4fvvertexAttribPointerviewport $fEmbedIOGL $fFunctorGL$fApplicativeGL $fMonadGL $fMonadIOGL AttributeUniform CPUMirror ParameterZeroOne SourceColorDestinationColor ConstantColor SourceAlphaDestinationAlpha ConstantAlphaOneMinusOperatorAddSubtractReverseSubtractMode constantColor rgbOperator rgbParameters alphaOperatoralphaParameters transparencyadditive OperationTypeKeepInvertReplace Increment DecrementIncWrapDecWrap Operation FunctionTypeNeverAlwaysLess LessOrEqualGreaterGreaterOrEqualEqualNotEqualFunctionSide FrontBackSeparate makeContext$fGLESFilterLinearNearest transMat4rotXMat4rotYMat4rotZMat4rotMat4 scaleMat4perspectiveMat4 orthoMat4 cameraMat4 lookAtMat4 transMat3rotMat3 scaleMat3UVNormal3 Position3View3 Transform3Texture2 AttributesUniforms vertexShaderfragmentShader$fGenericTexture2$fGenericTransform3$fGenericView3$fGenericPosition3$fGenericNormal3 $fGenericUV Position2View2 Transform2DepthImage$fGenericImage$fGenericDepth$fGenericTransform2$fGenericView2$fGenericPosition2 CompatibleprogramGeometryremoveAttribute Geometry2D Geometry3DAttr:~Triangle mkGeometry mkGeometryInd mkGeometry3D mkGeometry3D' mkGeometry2D mkGeometry2D'mkGeometry3DIndmkGeometry3DInd'mkGeometry2DIndmkGeometry2DInd' positionOnly$fFunctorTriangle$fHashableVertex rectGeometry cubeGeometry mkTexture mkTextureRawmkTextureFloat setFiltercolorTexCullFace CullFrontCullBack CullFrontBackGlobalObject:~> RemoveGlobal*~> MemberGlobal~~>blendnoBlendstencil noStencil depthTestcullnoCullnothinggeommodifyGeometry-= withTexture withTexSizewithFramebufferSizemirror$fRemoveGlobalg::$fRemoveGlobalg:gs$fMemberGlobalg:$fMemberGlobalg:0 ColorBuffer DepthBuffer StencilBuffer LayerStatusDrawable NonDrawableTTextureLayer'Layerdrawable castLayer permanent withTTexturedepthToTexturecolorDepthToTexturecolorStencilToTexturecolorToTexture'depthToTexture'colorDepthToTexture'colorStencilToTexture'buffersDepthToTexturebuffersStencilToTexturelayeroversubLayer colorSubLayer depthSubLayercolorDepthSubLayercolorStencilSubLayercolorSubLayer'depthSubLayer'colorDepthSubLayer'colorStencilSubLayer'buffersSubLayerbuffersDepthSubLayerbuffersStencilSubLayerDraw DrawState drawStatedrawInitresizeViewport clearBufferspreloadGeometrypreloadTexturepreloadProgramremoveGeometry removeTexture removeProgram drawLayergl refDrawCtx runDrawCtx execDrawCtx evalDrawCtx IsObject2DObject2D Uniforms2Drectpolyimagedepthspriteview viewScreenviewVPlayerStransrotscalescaleVscaleTex scaleTexAR transform screenMat3 IsObject3DObject3D Uniforms3Dcubemesh viewPersp viewOrthorotXrotYrotZperspectiveMat4Size ShaderTypeUnknownActionExprMIntzerotoExprfromExprtypeNamesizeContextVarType LoopIteration LoopValueStoreIfForEmptyReadOp1Op2ApplyXYZWLiteralDummy ArrayIndex ContextVarhash2 $fEqAction$fHashableAction$fHashableExpr$fShaderTypeMat4$fShaderTypeMat3$fShaderTypeMat2$fShaderTypeBVec4$fShaderTypeBVec3$fShaderTypeBVec2$fShaderTypeIVec4$fShaderTypeIVec3$fShaderTypeIVec2$fShaderTypeVec4$fShaderTypeVec3$fShaderTypeVec2$fShaderTypeSamplerCube$fShaderTypeSampler2D$fShaderTypeFloat$fShaderTypeInt$fShaderTypeBool$fShaderTypeArray$fShaderTypeUnknownGenTypeMul toCompListCLCLAppendMatrixNum GenTypeFloatGenTypeFloatConstrFloatVec ArithmeticBase/=not textureCubetextureCubeBiastextureCubeLodop1op2fun1fun2fun3 funCompList$fToCompListtn$fToCompListCompListn $fToMat4t $fToMat4Float $fToMat3t $fToMat3Float $fToMat2t $fToMat2Float $fToBVec4t$fToBVec4Float $fToBVec3t$fToBVec3Float $fToBVec2t$fToBVec2Float $fToIVec4t$fToIVec4Float $fToIVec3t$fToIVec3Float $fToIVec2t$fToIVec2Float $fToVec4t $fToVec4Float $fToVec3t $fToVec3Float $fToVec2t $fToVec2Float $fToFloatInt $fToFloatBool$fToFloatFloat $fToBoolInt $fToBoolBool $fToBoolFloat $fToIntInt $fToIntBool $fToIntFloat $fMatrixMat4 $fMatrixMat3 $fMatrixMat2$fNumInt $fNumFloat$fBoolVectorBVec4$fBoolVectorBVec3$fBoolVectorBVec2 $fVecEqBVec4 $fVecEqBVec3 $fVecEqBVec2 $fVecEqIVec4 $fVecEqIVec3 $fVecEqIVec2 $fVecEqVec4 $fVecEqVec3 $fVecEqVec2 $fVecOrdIVec4 $fVecOrdIVec3 $fVecOrdIVec2 $fVecOrdVec4 $fVecOrdVec3 $fVecOrdVec2 $fGenTypea$fGenTypeFloat$fFloatVecVec4$fFloatVecVec3$fFloatVecVec2$fMulaBasebBaseabresult$fMulFloatFloatVec4Mat4Vec4$fMulFloatFloatVec3Mat3Vec3$fMulFloatFloatVec2Mat2Vec2$fMulFloatFloatMat4Vec4Vec4$fMulFloatFloatMat3Vec3Vec3$fMulFloatFloatMat2Vec2Vec2$fArithmeticIntIntIntIVec4IVec4$fArithmeticIntIntIntIVec3IVec3$fArithmeticIntIntIntIVec2IVec2$fArithmeticIntIntIVec4IntIVec4$fArithmeticIntIntIVec3IntIVec3$fArithmeticIntIntIVec2IntIVec2!$fArithmeticIntIntIVec4IVec4IVec4!$fArithmeticIntIntIVec3IVec3IVec3!$fArithmeticIntIntIVec2IVec2IVec2$fArithmeticIntIntIntIntInt#$fArithmeticFloatFloatFloatMat4Mat4#$fArithmeticFloatFloatFloatMat3Mat3#$fArithmeticFloatFloatFloatMat2Mat2#$fArithmeticFloatFloatMat4FloatMat4#$fArithmeticFloatFloatMat3FloatMat3#$fArithmeticFloatFloatMat2FloatMat2"$fArithmeticFloatFloatMat4Mat4Mat4"$fArithmeticFloatFloatMat3Mat3Mat3"$fArithmeticFloatFloatMat2Mat2Mat2#$fArithmeticFloatFloatFloatVec4Vec4#$fArithmeticFloatFloatFloatVec3Vec3#$fArithmeticFloatFloatFloatVec2Vec2#$fArithmeticFloatFloatVec4FloatVec4#$fArithmeticFloatFloatVec3FloatVec3#$fArithmeticFloatFloatVec2FloatVec2"$fArithmeticFloatFloatVec4Vec4Vec4"$fArithmeticFloatFloatVec3Vec3Vec3"$fArithmeticFloatFloatVec2Vec2Vec2%$fArithmeticFloatFloatFloatFloatFloat$fBaseMat4Float$fBaseMat3Float$fBaseMat2Float$fBaseVec4Float$fBaseVec3Float$fBaseVec2Float$fBaseFloatFloat$fBaseIVec4Int$fBaseIVec3Int$fBaseIVec2Int $fBaseIntIntAndUnionReverse'ReverseInsertAppend DifferenceRemoveSubsetIsSubsetIsMemberNotMemberOrErr MemberOrErrMember FalseOrErr TrueOrErr EqualOrErrIsEqualNotSettypeSetTypeSetPSNilPSCons $fSetconstr: $fSetconstr[] GHC.TypeLits TypeError ErrorMessageText:<>::$$:ShowType ShaderVar staticSVList BaseTypes varPreNamevarBuild varToList GShaderVar GBaseTypes gvarPreName gvarBuild gvarToListsvFoldsvToList $fShaderVarg$fGShaderVarK1$fGShaderVarM1$fGShaderVarM10$fGShaderVarM11$fGShaderVar:*:$fShaderVarFragmentShaderOutput ActionContextShallowContext DeepContextcompilebuildActionGraph contextAlldeep compileExpr ActionGraphActionGenerator ActionInfoactionGenerator actionDeps actionContext ActionSet ActionMapActionIDSV uniformVars inputVars outputVars VarPrefixVaryingvertexToGLSLAttr vertexToGLSLfragmentToGLSL shaderToGLSLvarsgenerate sortActionsfirst3 compileAction actionNamecontextVarNamehashName uniformNamevarNameEmbedIOembedIOResource loadResourceunloadResource ResStatusLoadedUnloadedErrorResMap newResMap addResource checkResourcecheckResource' getResourceremoveResourceremoveResource'unloader BaseAttribute BaseUniform CPUSetterTypeSMBaseAttributes BaseUniformsGUniformMirrorgWithUniformMirrorMTuple GCPUMirror GCPUSingle CPUSingle GCPUValueTConsTDatawithAttributes withUniformsencodeAttribute setAttribute setUniformCPUBaseCPUsingleattr toGPUBool$fBaseAttributes:$fBaseAttributes:0$fBaseUniforms:$fBaseUniforms:0$fBaseUniformMat4$fBaseUniformMat3$fBaseUniformMat2$fBaseAttributeBVec4$fBaseUniformArray$fBaseUniformBVec4$fBaseAttributeBVec3$fBaseUniformArray0$fBaseUniformBVec3$fBaseAttributeBVec2$fBaseUniformArray1$fBaseUniformBVec2$fBaseAttributeIVec4$fBaseUniformArray2$fBaseUniformIVec4$fBaseAttributeIVec3$fBaseUniformArray3$fBaseUniformIVec3$fBaseAttributeIVec2$fBaseUniformArray4$fBaseUniformIVec2$fBaseAttributeVec4$fBaseUniformArray5$fBaseUniformVec4$fBaseAttributeVec3$fBaseUniformArray6$fBaseUniformVec3$fBaseAttributeVec2$fBaseUniformArray7$fBaseUniformVec2$fBaseUniformSamplerCube$fBaseUniformSampler2D$fBaseAttributeInt$fBaseUniformArray8$fBaseUniformInt$fBaseAttributeBool$fBaseUniformArray9$fBaseUniformBool$fBaseAttributeFloat$fBaseUniformArray10$fBaseUniformFloat$fGUniformMirrorK1mdc$fGUniformMirrorM1M1dc$fGUniformMirror:*:mdc $fUniformMg $fAttributeSg $fUniformSgequationfunction operation genToCreatedeleteToDelete getStringuniform uniformMatrix vertexAttrib mkArrayLen arrayToListmkArray LoadedTexture TextureImage TexturePixels TextureRaw TextureFloat TextureLoaded textureHashloadTextureImage emptyTexture%$fResourceTextureImageLoadedTextureGL$fEqLoadedTexture$fEqTextureImage$fHashableTextureImageDefaultAttributes2DDefaultUniforms2DDefaultAttributes3DDefaultUniforms3D ProgramIndex LoadedProgram programIndexdefaultProgram3DdefaultProgram2D loadProgram loadSource $fResourceProgramLoadedProgramGL$fEqLoadedProgram$fHashableLoadedProgram $fEqProgram$fHashableProgramAttrList RemoveAttr removeAttr emptyAttrListLoadedAttributeElemData LoadedBufferLoadedGeometry elementCountvaoAttrData AttrListNil AttrListConsgeometry loadGeometry setAttrListdeleteGeometry loadBuffer$fHashableVec4$fHashableVec3$fHashableVec2 $fResourceElemDataLoadedBufferGL#$fResourceAttrDataLoadedAttributeGL$fRemoveAttri::$fRemoveAttri:is $fAttributes:$fAttributes[]$fHashableAttrList $fEqAttrData$fHashableAttrData $fEqElemData$fHashableElemData$fHashableGeometry $fEqGeometry!vect-0.4.7-4shkZQdeqt11C5CymiZN2oData.Vect.Float.Base addAttrListvertex3Dvertex2DextendSingleMirror WithTextureWithTextureSizeWithFramebufferSizeObjPropBlendStencilCull DepthTest DepthMask ColorMaskMeshNoMeshProp$fMonoidObject globalApply>>>>= withTTextures LayerType ColorLayer DepthLayerDepthStencilLayer BufferLayer TextureLayer Permanent WithTTexturesFreeClearCastBindReturn castDrawable castTTexture $fMonadLayer'$fApplicativeLayer'$fFunctorLayer'runDrawexecDrawevalDraw drawObject textureSize setProgramlayerToTexturedrawGetunDrawcurrentProgram loadedProgramprogramsuniforms elemBuffers attributes geometries textureImagesactiveTextures viewportSize blendMode stencilMode drawLayer' withObjProp stateReset withGlobalwithActiveTexture makeActivewithRes_withRes getUniform getGeometry getTexturegetTextureImage getProgramrenderToTexture setBlendModesetStencilMode setCullFace setDepthTest setDepthMasksetFlag setColorMaskgetDrawResourceremoveDrawResource drawGeometry$$fResourceGeometryLoadedGeometryDraw$fResource(,)UniformLocationGL $fEmbedIODraw transform' tupleToVecData.Vect.Float.Util.ProjectivetranslateBefore4translateAfter4 translate4scaleAfterProj4scaleBeforeProj4scalingUniformProj4rotateBeforeProj4rotateAfterProj4 rotateProj4rotMatrixProj4rotMatrixProj4'Data.Vect.Float.Interpolateslerp Interpolate interpolateData.Vect.Float.Util.Dim3 refractOnly'refract'reflect'rotMatrixOrtho3' rotMatrix3'rotMatrixOrtho3 rotMatrix3rotate3rotate3' rotMatrixX rotMatrixY rotMatrixZvec3Zvec3Yvec3X translate3Z translate3Y translate3Xdet3 destructVec3 structVec3Data.Vect.Float.Util.Dim2rotateCW rotateCCWrotate2rotMatrixOrtho2 rotMatrix2angle2'angle2 sinCosRadiussinCos'sinCos translate2Y translate2Xvec2Yvec2Xdet2 destructVec2 structVec2mkVec4mkVec3mkVec2householderOrtho householder flipNormalproject projectUnsafeproject'angle'anglesemigroupProductvecSum AbelianGroupneg&+&- MultSemiGroup.*.oneRing LeftModulelmul*. RightModulermul.*VectormapVec scalarMul*&&*DotProd&.normnormsqrlenlensqrdotprod UnitVectormkNormaltoNormalUnsafe fromNormalfromNormalRadius CrossProd crossprod&^ Pointwise pointwise&!HasCoordinates_1_2_3_4Extendtrim extendZero extendWithDiagonaldiag transposeinverseidmtx Orthogonal fromOrtho toOrthoUnsafe MatrixNorms frobeniusNormmatrixDistance operatorNormTensorouter Determinantdet Dimensiondim ProjectivefromProjectivetoProjectiveUnsafe orthogonallinear translationscalingNormal2Normal4Ortho2Ortho3Ortho4Proj3Proj4