53      Mathematical compositions.(c) plaimi 2014GPL-3plailude@plaimi.net Safe-InferredCompose two functions where the second function takes two values and delivers its result as a single value to the first function.0This is equivalent to: (f .: g) x y = f (g x y).Compose two functions where the second function takes three values and delivers its result as a single value to the first function.5This is equivalent to: (f .:. g) x y z = f (g x y z). Time units.(c) plaimi 2014GPL-3plailude@plaimi.netNoneBA % type, for type safety of time units.Make a , an  deriving .A % type, for type safety of time units.Make a , an  deriving .A % type, for type safety of time units.Make an , an  deriving .A % type, for type safety of time units. Make a , an  deriving . A  % type, for type safety of time units. Make a  , an  deriving . A  % type, for type safety of time units. Make a  , an  deriving .7s are units of time with a value that's an instance of q. The class is used to get type safety of time units, and a function for getting "out" the value (analogues to fromJust for ) for every type of  , for free.Get out the value in a 6. The value's type is polymorphic and constrained to .      Converting between time units.(c) plaimi 2014GPL-3plailude@plaimi.netNoneYfromGregorian is a wrapper for Data.Time.Calendar.fromGregorian, which lets us pass our   -   - z structures. It calls Data.Time.Calendar.fromGregorian with the appropriate types, and returns a Data.Time.Calendar.Day.asSeconds take some TimeUnits and convert them to s.Show various Text formats.(c) plaimi 2014GPL-3plailude@plaimi.net Safe-Inferred converts a showable value to a  using  .Monads. dealwithit.jpeg.(c) plaimi 2014GPL-3plailude@plaimi.net Safe-InferredRetreat the value a of a ! m further into the !+ burrito by injecting it into yet another ! n, giving us m (n a). the value a of a " m further into the "+ burrito by injecting it into yet another "E n, giving us m (n a). If there's an error, it is rethrown inside n.IO. dealwithit.jpeg.(c) plaimi 2015GPL-3plailude@plaimi.net Safe-InferredHQuery the terminal for STDIN. If there is any, do lhs -- if not, do rhs. Bools. dealwithit.jpeg.(c) plaimi 2014GPL-3plailude@plaimi.net Safe-InferredIf #' then the first value, else the second.If #' then the first value, else the second. Arrows. dealwithit.jpeg.(c) plaimi 2014GPL-3plailude@plaimi.net Safe-Inferred=Send both components of the input through the argument arrow. Function functions.(c) plaimi 2014GPL-3plailude@plaimi.net Safe-Inferred %Time representation and manipulation.(c) plaimi 2014GPL-3plailude@plaimi.netNone  Text manipulation.(c) plaimi 2014GPL-3plailude@plaimi.net Safe-Inferred Higher-kinded stuff.(c) plaimi 2014GPL-3plailude@plaimi.net Safe-Inferred3Prelude that exports all the most useful functions.(c) plaimi 2014GPL-3plailude@plaimi.netNone   $ !"#$% &'()*+,-./-0123456-78-9:;<='(>?plailude-0.5.1PlailudePlailude.Function.ComposePlailude.Data.Time.UnitsPlailude.Data.Time.ConversionPlailude.Data.Text.ShowPlailude.Control.MonadPlailude.Control.IOPlailude.Control.BoolPlailude.Control.ArrowPlailude.FunctionPlailude.Data.TimePlailude.Data.TextPlailude.Control.:.:.SecondMkSecondMinuteMkMinuteHourMkHourDayMkDayMonthMkMonthYearMkYearTimeUnittimeVal fromGregorian asSecondsshowL8retreat erretreat~+~if'fibothghc-prim GHC.TypesInt integer-gmpGHC.Integer.TypeIntegerbaseGHC.NumNum Data.MaybeMaybe$fTimeUnitInteger $fTimeUnitIntbytestring-0.10.4.0Data.ByteString.Lazy.Internal ByteStringGHC.ShowshowGHC.BaseMonad mtl-2.2.1Control.Monad.Error.Class MonadErrorTrue