6 /=      !"#$%&'()*+,-./0123456789:;<None A three-element vector A three-element vector A two-element vector  =>?@ABCDEFGHIJKLMNOPQ    =>?@ABCDEFGHIJKLMNOPQNone RSTUVWXYRVUTSWXYNone.FCreate an OpenGL window and sinks all events into the given handler. : !"#$%&'()*+,-.Z/[\012]3456789:;<^_`abcdefghijkflmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<8  -,.(+*)'$&%"# !/03456789:;<12- !"#$&%'(+*),-.Z/[\012]3456789:;<^_`abcdefghijk     !"#$$%&'(%)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrmstmuvmwxmwymz{mz|m}~m}mmmmmppm}mmmmmmpmmmm}pmmmmmppppppmpmmzppmmpppmppppppppppmzm}m}m}mwmwmmmmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmsmmmmmmmmmmmmmmmnmmmmmmmmmmmmmmmmmmm m  m  m mmmmmmmmmmmmmmmmmm m!m"m#m$m%m&m'm(m)m*m+m,m-m.m/0m1m2m3m4m56m57m58m59m5:m5;m5<m5=m>m?@m?Am BmuCmuDmuEmuFmuGmuHmuImuJmuKmuLmuMmuNmOPQRSQRTQRUQRVQRWQRXQRYQRZQR[QR\QR]QR^QR_QR`QRaQRbQRcQRdQReQRfQRfQRgQhiQhjQhkQhlQhmQhnQopQoqQorQosQtuQtvQtwQtxQtyQtzQt{Qt|Qt}Qt~QtQtQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ Q Q Q Q QQQQQQQQQQQQQQQQQQ Q!Q"Q#Q$Q%Q&Q'Q(Q)Q*Q+Q,Q,Q-Q-Q.Q/Q/Q01Q02Q03Q04Q05Q06Q07Q08Q09Q0:Q0;Q0<Q0=Q0>Q0?Q0@Q0AQ0BQ0CQ0DQ0EQ0FQ0GQ0HQ0IQ0JQ0KQ0KQLMQLNQLOQLPQLQQLRQLSQLTQLUQLVQLWQLXQLYQLZQL[QL\QL\QL]QL^QL^QL_QL`QL`QLaQLbQLcQLdQLdQLeQLfQLgQhiQhjQhkQhlQhmQhnQhoQpqQprQpsQptQpuQpvQpwQpxQpyQpzQp{Qp|Qp}Qp~QpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpQpmSimpleGL-0.9.1 SimpleH.GLSimpleH.GL.TextureSimpleH.GL.Base GLFW-0.5.1.0Graphics.UI.GLFW swapBuffersReleasePressKeyButtonStateOpenGL-2.8.0.0'Graphics.Rendering.OpenGL.GL.CoordTransSize%Graphics.Rendering.OpenGL.GL.StateVarGettableStateVarSettableStateVarGraphicsdrawV4V3V2Texture readTexture imageTexture readTextures readTextures'PositionCoord TransformZoomRotate Translate ShapeProp VertexPropTexCoordColorVertexShapePolygonWidgetSubSceneSceneButton MouseButton SpecialKeyCharKeyTitle EventHandler spawnWindow clearScreen drawScenevertcvertwhiteblackgreygrayredgreenblueyellowmagentacyan$fTraversableV4 $fFoldableV4$fApplicativeV4$fUnitV4 $fFunctorV4 $fMonoidV4 $fSemigroupV4$fTraversableV3 $fFoldableV3$fApplicativeV3$fUnitV3 $fFunctorV3 $fMonoidV3 $fSemigroupV3$fTraversableV2 $fFoldableV2$fApplicativeV2$fUnitV2 $fFunctorV2 $fMonoidV2 $fSemigroupV2 TextureFormat GreyscaleA GreyscaleRGBARGB pixelFormats$fGraphicsTexturemilli withMatrixpreservingMatrixrgb$fApplicativeVertex3 $fUnitVertex3$fFunctorVertex3$fApplicativeVector3 $fUnitVector3$fFunctorVector3$fGraphicsShapeProp$fGraphicsVertexProp$fGraphicsVertex$fGraphicsShape$fGraphicsWidget $fRingCFloat$fMonoidCFloat$fSemigroupCFloatbaseGHC.Errerrorghc-primGHC.PrimseqGHC.Listzip System.IOprint Data.TuplefstsndGHC.Base otherwise$GHC.Num fromInteger-GHC.Real fromRationalGHC.EnumenumFrom enumFromThen enumFromToenumFromThenTo GHC.Classes==>=negate fromIntegral realToFrac toInteger toRationalBoundedEnumEq GHC.FloatFloating FractionalIntegralNumOrdGHC.ReadReadReal RealFloatRealFracGHC.ShowShow GHC.TypesBoolCharDoubleFloatInt integer-gmpGHC.Integer.TypeIntegerOrderingRationalIO Data.EitherEitherStringFalseTrueLeftRightLTEQGT Data.MaybeNothingminmax><not||&&<=compare/=asTypeOfabssignumsubtractcurryuncurryMaybeJustmaybeheadtaillastinitnullscanlscanl1foldr1scanrscanr1iteraterepeat replicatecycle takeWhile dropWhiletakedropsplitAtspanbreakreversenotElem concatMap!!zip3zipWithzipWith3unzipunzip3 showsPrecshowshowListShowSshowsshowChar showString showParensuccpredtoEnumfromEnumminBoundmaxBound undefinedproperFractiontruncateroundceilingfloor/recipquotremdivmodquotRemdivModevenodd^^^gcdlcmGHC.IO.ExceptionIOError userErrorGHC.IOFilePath floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2piexpsqrtlog**logBasesintancosasinatanacossinhtanhcoshasinhatanhacoshText.ParserCombinators.ReadPReadS readsPrecreadList readParenlex Data.Listmaximumminimumfoldl1productlinesunlineswordsunwordseither Text.ReadreadsreadioErrorputCharputStrputStrLngetChargetLine getContentsinteractreadFile writeFile appendFilereadLnreadIOPrelude$! SimpleH-1.0SimpleH.ReactivefutureIO_value_time_futureeventsinkmasktimeswithTime mapFuturesheadEgroupE<|*><*|>//mkEventatTimes_eventEventReactiveFutureSimpleH.Reactive.Time currentTimewaitTilltimeIOtimeValTimeSecondsSimpleH.Reactive.TimeValAlwaysSinceNeverTimeVal SimpleH.ArrowappcomapAdup>>^^>>arrArrowapplyApplyrunListAListA SimpleH.Monad_eitherTtry_listTevalCont evalContT_writer_writerT interceptmute_reader_readerTwithNextwithPrevpoppush mapAccumR_ mapAccumR mapAccum_mapAccumsavinggets=~=-_stateexeceval_stateT_mvar_iorefreturn<*=>=><=<=<<>>>>>>=bind3>>>=bind2untilwhilefoldrMfoldlM_KleislimfixMonadFixlift MonadTrans runKleisliKleislirunRWSTRWSTRWSmodifyputget MonadStateIOLensStateTStatelocalask MonadReaderReaderTReadercensorlistentell MonadWriterWriterTWritercallCC MonadContrunContTContTContfork MonadListListTcatchthrow MonadErrorEitherTSimpleH.Traversableflip transposeforeachtraversesequence Traversablecollect Contravariant SimpleH.Lens_thunkaddingwarp2 _Backwards_Compose_Flip_maybe_Endo_Max_Const_Dual_OrdList_Id _promapping _mapping'_mapping_tail_head_list_r_l_2_1setwarpat'at.--.simple^?%%-%-%%~%~^..^.prismgetterlensfromisoLensLike LensLike'LensLens'GetterGetter' Traversal Traversal'IsoIso':<->:_eachCompound_iso IsomorphicmapIso IsoFunctormapIso2 IsoFunctor2SimpleH.ApplicativebetweenzeroAplusAliftA4liftA3liftA2liftAforeverfor_ traverse_ sequence_<**><**>ap getZipListZipListZipTreeforwards BackwardsSimpleH.FoldableelemanyallandorfindtoListfoldl'foldrcomposerefuseselectfilter partitionpartitionEitherssplitlengthcountsizesumconcatconvertfoldMapfoldFoldablegetSizedSizedSimpleH.Functorpromapmap3map2voidrightleft<$<&>|||<$>comap Cofunctordimap BifunctorgetIdIdgetConstConstunFlipFlip getComposeCompose:.::**:getSumSum:++:SimpleH.ClassesmapFunctor<*> Applicative>>=joinMonad SimpleH.Core invertOrdunlesswhenunitfixconstfailheadDeftailSafebool ifThenElseguardfirstsecond+++& insertOrd>>><<<vdVoid:*::+:+ SemigroupzeroMonoidcastSubSemi*oneRingpureUnit.idCategory<|>Choice<#>Split getProductProductrunEndoEndo runStrictEndo StrictEndogetAccumAccumgetMaxMaxgetDualDual getOrdListOrdListinOrder Orderable interleave InterleaveData.Ord comparing