h&)'      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] Safe-Inferred"%&/01 o-clockConstraint alias for  units.o-clockThis class gives the integer associated with a type-level rational.o-clock4Rational numbers, with numerator and denominator of ^ type.o-clock2Comparison of type-level rationals, as a function.:kind! (1 :% 42) >=% (5 :% 42)(1 :% 42) >=% (5 :% 42) :: Bool= 'False:kind! (5 :% 42) >=% (1 :% 42)(5 :% 42) >=% (1 :% 42) :: Bool= 'True:kind! (42 :% 1) >=% (42 :% 1)(42 :% 1) >=% (42 :% 1) :: Bool= 'Trueo-clock%Normalization of type-level rational.Example::kind! Normalize (9 % 11)Normalize (9 % 11) :: Rat = 9 '::% 11:kind! Normalize (9 % 12)Normalize (9 % 12) :: Rat = 3 '::% 4o-clock0Greatest common divisor for type-level naturals.Example::kind! Gcd 9 11Gcd 9 11 :: Natural= 1:kind! Gcd 9 12Gcd 9 12 :: Natural= 3_o-clock,Division of type-level rational and natural.Example::kind! DivRatNat (9 % 11) 2DivRatNat (9 % 11) 2 :: Rat = 9 '::% 22`o-clock3Multiplication of type-level natural with rational.Example::kind! MulNatRat 2 (9 % 11)MulNatRat 2 (9 % 11) :: Rat = 18 '::% 11ao-clock(Multiplication for type-level rationals.Example::kind! MulRat (2 % 3) (9 % 11)MulRat (2 % 3) (9 % 11) :: Rat = 6 '::% 11o-clock!Division of type-level rationals. If there are  with bs a and b and another  with c d0 then the following formula should be applied: 3 \frac{a}{b} / \frac{c}{d} = \frac{a * d}{b * c} Example::kind! DivRat (9 % 11) (9 % 11)DivRat (9 % 11) (9 % 11) :: Rat = 1 '::% 1o-clock#Type family for normalized pair of bs @ . o-clock1More convenient name for promoted constructor of . o-clockOverloaded division. o-clockOverloaded multiplication. o-clock'The result kind of overloaded division. o-clock-The result kind of overloaded multiplication.o-clockData structure represents the rational number. Rational number can be represented as a pair of natural numbers n and m where m is nor equal to zero.o-clock Performs action with introduced ! constraint for rational numbers.   47 Safe-Inferred"%&/126;o-clockConstraint alias for  and  for time unit.o-clockConstraint alias for c .o-clockType family for prettier d of time units.o-clockTime unit is represented as type level rational multiplier with kind ."o-clockReturns type-level e of the time unit converted to f.#o-clockCreates  of some type from given ^.$o-clockCreates ! from given ^.sec 4242s%o-clockCreates   from given ^.ms 4242ms&o-clockCreates  from given ^.mcs 4242mcs'o-clockCreates  from given ^.ns 4242ns(o-clockCreates  from given ^.ps 4242ps)o-clockCreates  from given ^. minute 4242m*o-clockCreates  from given ^.hour 4242h+o-clockCreates  from given ^.day 4242d,o-clockCreates  from given ^.week 4242w-o-clockCreates  from given ^. fortnight 4242fn.o-clock4Returns the greatest integer not greater than given ./o-clock Similar to g, but works with  units.floorUnit @Day (Time $ 5 % 2)2d floorUnit (Time @Second $ 2 % 3)0sfloorUnit $ ps 4242ps0o-clockReturns the smallest integer greater than or equal to the given .1o-clock Similar to h, but works with  units.ceilingUnit @Day (Time $ 5 % 2)3d"ceilingUnit (Time @Second $ 2 % 3)1sceilingUnit $ ps 4242ps2o-clock Convert the  object to the i value. Examples:%toFractional @Rational $ hour (1 % 8)1 % 8#toFractional @Double $ hour (1 % 8)0.1253o-clock1Converts from one time unit to another time unit.toUnit @Hour (minute 120)2htoUnit @Second (ms 7)7/1000stoUnit @Week (Time @Day 45)6+3/7wtoUnit @Second @Minute (Time 3)180s$toUnit (day 42000000) :: Time Second3628800000000s4o-clockConvenient version of 8 which takes any time-unit and operates in any MonadIO. >>> threadDelay $ sec 2 ">>> threadDelay (2 :: Time Second) >>> threadDelay @Second 2 5o-clock Similar to j but returns the CPU time used by the current program in the given time unit. The precision of this result is implementation-dependent. >>> getCPUTime @Second 1064046949/1000000000s 6o-clock Similar to k? but receiving any time unit instead of number of microseconds. .>>> timeout (sec 1) (putStrLn "Hello O'Clock") Hello O'Clock Just ()  ->>> timeout (ps 1) (putStrLn "Hello O'Clock") Nothing .>>> timeout (mcs 1) (putStrLn "Hello O'Clock") HellNothing 8o-clock-Addition is associative binary operation for l of .6o-clocktimeo-clockm actiono-clockreturns n0 if no result is available within the given time% !"#$%&'()*+,-./0123456%! "#/.102$%&'()*+,-3456 Safe-Inferred "%&15 @o-clock Similar to & but has no units and can be negative.Bo-clockConverts unix time to @.Co-clock(Returns the result of comparison of two @ s and the ' of that difference of given time unit.,timeDiff @Second (Timestamp 4) (Timestamp 2)(GT,2s),timeDiff @Minute (Timestamp 4) (Timestamp 2) (GT,1/30m),timeDiff @Second (Timestamp 2) (Timestamp 4)(LT,2s),timeDiff @Minute (Timestamp 2) (Timestamp 4) (LT,1/30m)Do-clock"Returns the result of addition of  with @ elements.sec 5 `timeAdd` (Timestamp 4)Timestamp (9 % 1) minute 1 `timeAdd` (Timestamp 5)Timestamp (65 % 1)Eo-clock0Returns the result of multiplying a number by a  element.Fo-clockOperator version of E. 3 *:* sec 515s2 *:* 3 *:* sec 530s3 *:* 5 *:* sec 7105sms 2000 +:+ 2 *:* sec 38sGo-clock&Returns the result of division of two  elements.Ho-clockOperator version of G.sec 15 /:/ sec 35 % 1Io-clockSums times of different units.minute 1 +:+ sec 161sJo-clockSubstracts time amounts of different units. When the minuend is smaller than the subtrahend, this function will throw Underflow :: ArithException.minute 1 -:- sec 159sKo-clockCompute the difference between two amounts of time. The result is returned in two components: the ordering (which input is larger) and the numeric difference (how much larger). Unlike J, does not throw ArithException.sec 5 -%- sec 3(GT,2s)sec 5 -%- sec 6(LT,1s) @ABCDEFGHIJK @ABCDEFGHIJKF7H7I6J6K6 Safe-Inferred"%&12&Po-clockClass for time parsing.Empty string on input will be parsed as 0 time of the required time unit:+seriesP @'[Hour, Minute, Second] @Second "" Just (0s)Examples8seriesP @'[Day, Hour, Minute, Second] @Minute "2d18h40m" Just (4000m)1seriesP @'[Day, Minute, Second] @Minute "2d1120m" Just (4000m)/seriesP @'[Hour, Minute, Second] @Second "1h1s" Just (3601s)3seriesP @'[Hour, Second, Millisecond] @Minute "90s" Just (1+1/2m)'seriesP @'[Hour, Second] @Second "11ns"Nothing)seriesP @'[Hour, Minute] @Minute "1+1/2h"Nothing)seriesP @'[Hour, Minute] @Minute "1+1/2m" Just (1+1/2m)+seriesP @'[Hour, Minute] @Minute "1h1+1/2m"Just (61+1/2m)Note: The received list should be in descending order. It would be verified at compile-time.Ro-clockClass for time formatting.Examples3seriesF @'[Day, Hour, Minute, Second] (minute 4000) "2d18h40m"-seriesF @'[Day, Minute, Second] (minute 4000) "2d1120m"+seriesF @'[Hour, Minute, Second] (sec 3601)"1h1s"?@ABCDEEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijhklhmnopqhrshtuhtvhtwhx:hy;hrzop{h|}~$o-clock-1.4.0-HmGrLQd2aL4D18BCbSg4MA Time.Rational Time.UnitsTime.Timestamp Time.SeriesControl.Concurrent threadDelayTime KnownDivRatKnownRatratValRatioNat>=% NormalizeGcdDivRat%:%/*DivKMulKRat::%withRuntimeDivRat $fKnownRat::% KnownRatName KnownUnitNameUnitNameunTime FortnightWeekDayHourMinute Picosecond Nanosecond Microsecond MillisecondSecond unitNameValtimesecmsmcsnspsminutehourdayweek fortnightfloorRat floorUnit ceilingRat ceilingUnit toFractionaltoUnit getCPUTimetimeout $fMonoidTime$fSemigroupTime $fReadTime $fShowTime$fEqTime $fOrdTime $fEnumTime $fGenericTime $fDataTime Timestamp fromUnixTimetimeDifftimeAddtimeMul*:*timeDiv/:/+:+-:--%-$fShowTimestamp$fReadTimestamp $fEqTimestamp$fOrdTimestampSeriesPseriesPSeriesFseriesF...AllTimesunitsFunitsP $fSeriesF: $fSeriesF:0 $fSeriesF[] $fSeriesP: $fSeriesP:0 $fSeriesP[] ghc-bignumGHC.Num.NaturalNatural DivRatNat MulNatRatMulRatbase GHC.TypeNatsNat GHC.TypeLits KnownSymbolGHC.Showshowghc-prim GHC.TypesSymbolGHC.BaseStringGHC.Realfloorceiling FractionalSystem.CPUTimeSystem.Timeout SemigroupIO GHC.MaybeNothing IsDescending