úÎ3R.4R      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQNone "$67;<=KV]a+!)You can ignore. An intermediate type for .- to judge how to increment the current frame.1New counter to compare against the frame's delay.1How much delta to carry over into the next frame.*State for progression through an animation +example = Position minBound 0 0 Loop'AlwaysIndex for the animation.ˆIndex wihin the animation. WARNING: Modifying to below zero or equal-to-or-greater-than-the-frame-count will throw out of bounds errors.[Accumulated units to end of the frame. Will continue to compound if animation is completed.=How to loop through an animation. Loop'Count is a count down. 5Never stop looping. Animation can never be completed. NCount down loops to below zero. 0 = no loop. 1 = one loop. 2 = two loops. etc. KOne way to represent sprite sheet information. JSON loading is included.'Generalized sprite sheet data structure>Describe the boxed area of the 2d sprite inside a sprite sheetAnimation Keyframe.  is used for JSON parsing.0Type safe animation set. Use a sum type with an R and S instance for the animation, a.$UUser defined reference to the location of a sprite. For example, a sprite sheet clip.%/Minimium amount of units for the frame to last.' Alias for RGB (8bit, 8bit, 8bit)(*Generate animations given each constructor)!Lookup the frames of an animation*New ' with its animation key to loop forever+New + with its animation key with a limited loop,New -=Intermediate function for how a frame should be step through..4Step through the animation resulting a new position./<Use the position to find the current frame of the animation.0YUse the position to find the current location, lik a sprite sheet clip, of the animation.1£The animation has finished all its frames. Useful for signalling into switching to another animation. With a Loop'Always, the animation will never be completed.2%Cycle through the next animation key.3)Cycle through the previous animation key.46Simple function diff'ing the position for loop change.5Quick function for loading  . Check the example.7Quick function for loading  (, then using it to load its image for a . Check the example.4PreviousNext5'Path of the sprite sheet info JSON file6'Path of the sprite sheet info JSON fileT'Path of the sprite sheet info JSON file7 Inject an image loading function'Path of the sprite sheet info JSON file8 Inject an image loading function'Path of the sprite sheet info JSON file9  !"#$%&'()*+,-./012345678:'&"#$% !  ()*+,-.14/0235678     !"#$%None "$;<=KV]a. UVWXYZ[\]       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQOPRSTUVWXYZ[\$animate-0.7.0-KnCxP1dxZcIBdA5V6yKdTxAnimate Paths_animate FrameStepFrameStep'CounterFrameStep'DeltaPosition$sel:pKey:Position$sel:pFrameIndex:Position$sel:pCounter:Position$sel:pLoop:PositionLoop Loop'Always Loop'CountSpriteSheetInfo$sel:ssiImage:SpriteSheetInfo$sel:ssiAlpha:SpriteSheetInfo$sel:ssiClips:SpriteSheetInfo"$sel:ssiAnimations:SpriteSheetInfo SpriteSheet$sel:ssAnimations:SpriteSheet$sel:ssImage:SpriteSheet SpriteClip$sel:scX:SpriteClip$sel:scY:SpriteClip$sel:scW:SpriteClip$sel:scH:SpriteClip$sel:scOffset:SpriteClipKeyNamekeyName Animations$sel:unAnimations:AnimationsFrame$sel:fLocation:Frame$sel:fDelay:Frame FrameIndexColor animationsframesByAnimation initPositioninitPositionLoopsinitPositionWithLoop stepFrame stepPosition currentFramecurrentLocationisAnimationCompletenextKeyprevKeypositionHasLoopedreadSpriteSheetInfoJSONreadSpriteSheetInfoYAMLreadSpriteSheetJSONreadSpriteSheetYAML$fFromJSONSpriteClip$fToJSONSpriteClip$fFromJSONSpriteSheetInfo$fToJSONSpriteSheetInfo $fShowFrame $fEqFrame$fGenericFrame$fShowAnimations$fEqAnimations$fShowSpriteClip$fEqSpriteClip$fGenericSpriteClip$fGenericSpriteSheet$fShowSpriteSheetInfo$fEqSpriteSheetInfo$fGenericSpriteSheetInfo $fShowLoop$fEqLoop $fGenericLoop$fShowPosition $fEqPosition$fGenericPosition$fShowFrameStep $fEqFrameStep$fGenericFrameStepbaseGHC.EnumEnumBoundedreadSpriteSheetInfoversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName