$!/      !"#$%&'()*+,-.None&*34579>CDFLNwFinite animations, Animation with a period. Supports operations: * Combined end-to end using Semigroup instance, e.g. /+ * Combined with Infinite animations with  F * Turned into Inifinite animations by either: > Clamping time -   > Using Maybe -   > Repeating - " * Futher cropped in various waysInfinite animations time -> a. Supports operations: * Mapping over either time or the value using the Functor/Profunctor(lmap, rmap) * Combined in parallel with other infinite animations using Applicative/Monad * Turned into a finite animation by  0*Constructor for clips to simplify creation 1Take a section of an infinite animation as a Clip 8Sample from a clip, returning Nothing outside the domain 5Turn a clip into an infinite Animation by using Maybe DMake an infinite animation by clamping time to lie within the period1Make an infinite animation by repeating the clip 9Repeat a clip a fixed number of times to make a new one 1Stretch a clip to a specific size by scaling time6Shorten a clip to a certain period by cropping the end$Shorten a clip by cropping the startCrop the clip to a range Crop the clip to half the period8Keyframes using an interpolator between intervals (e.g. )Keyframer using linear interpolation Specified as pairs of (value, interval) First key is provided separately and always starts at time = 0nPiecewise animation using several clips concatenated end to end, one playing after the other, equivalent to /.FPredefined clips based on special functions for building up animations1Utility functions %20 341567    20 341567None&*34579>CDFLN%DSample a Clip during it's period, outside it's period return Nothing !"#$%&8'9()*+,-. !"#$%&'()*+,-. !",$#&%'*()+-. !"#$%&8'9()*+,-.:      !"#$%&'()*+,-./0123456789:;<=refle_6ckFCIjixfGKPSBAg1K9moReflex.AnimationReflex.Monad.TimeClipclipAnimperiod AnimationsampleAt stretcheddelayedapplycrop sampleCliptoMaybeclampedrepeat replicate stretchTocropEnd cropStartreCrophalflinear keyframesWith keyframes piecewiselinearIn linearOutsinecosine MonadTime integrateobservegetTimeafterdelaypushFordelay_ animateClipanimate animateOnplayClip playClampplayplayOnobserveChangesmatchmatchBysemig_509rjK42Yeb8JAwFst5KmOData.Semigroupsconcatclipfmod Interpolater intervalsWithsampleIntervalclamp$fSemigroupClip $fFunctorClipsampleOnfromNow