Hoogle Search
Within LTS Haskell 24.4 (ghc-9.10.2)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
tasty Test.Tasty.Runners Force elements of a list (https://ro-che.info/articles/2015-05-28-force-list).
formatMessage :: String -> IO Stringtasty Test.Tasty.Runners Catch possible exceptions that may arise when evaluating a string. For normal (total) strings, this is a no-op. This function should be used to display messages generated by the test suite (such as test result descriptions). See e.g. https://github.com/UnkindPartition/tasty/issues/25.
-
deepseq Control.DeepSeq a variant of deepseq that is useful in some circumstances:
force x = x `deepseq` x
force x fully evaluates x, and then returns it. Note that force x only performs evaluation when the value of force x itself is demanded, so essentially it turns shallow evaluation into deep evaluation. force can be conveniently used in combination with ViewPatterns:{-# LANGUAGE BangPatterns, ViewPatterns #-} import Control.DeepSeq someFun :: ComplexData -> SomeResult someFun (force -> !arg) = {- 'arg' will be fully evaluated -}
Another useful application is to combine force with evaluate in order to force deep evaluation relative to other IO operations:import Control.Exception (evaluate) import Control.DeepSeq main = do result <- evaluate $ force $ pureComputation {- 'result' will be fully evaluated at this point -} return ()
Finally, here's an exception safe variant of the readFile' example:readFile' :: FilePath -> IO String readFile' fn = bracket (openFile fn ReadMode) hClose $ \h -> evaluate . force =<< hGetContents h
formatTime :: FormatTime t => TimeLocale -> String -> t -> Stringtime Data.Time.Format Substitute various time-related information for each %-code in the string, as per formatCharacter. The general form is %<modifier><width><alternate><specifier>, where <modifier>, <width>, and <alternate> are optional.
<modifier>
glibc-style modifiers can be used before the specifier (here marked as z):- %-z no padding
- %_z pad with spaces
- %0z pad with zeros
- %^z convert to upper case
- %#z convert to lower case (consistently, unlike glibc)
<width>
Width digits can also be used after any modifiers and before the specifier (here marked as z), for example:- %4z pad to 4 characters (with default padding character)
- %_12z pad with spaces to 12 characters
<alternate>
An optional E character indicates an alternate formatting. Currently this only affects %Z and %z.- %Ez alternate formatting
<specifier>
For all types (note these three are done by formatTime, not by formatCharacter):- %% %
- %t tab
- %n newline
TimeZone
For TimeZone (and ZonedTime and UTCTime):- %z timezone offset in the format ±HHMM
- %Ez timezone offset in the format ±HH:MM
- %Z timezone name (or else offset in the format ±HHMM)
- %EZ timezone name (or else offset in the format ±HH:MM)
LocalTime
For LocalTime (and ZonedTime and UTCTime and UniversalTime):- %c as dateTimeFmt locale (e.g. %a %b %e %H:%M:%S %Z %Y)
TimeOfDay
For TimeOfDay (and LocalTime and ZonedTime and UTCTime and UniversalTime):- %R same as %H:%M
- %T same as %H:%M:%S
- %X as timeFmt locale (e.g. %H:%M:%S)
- %r as time12Fmt locale (e.g. %I:%M:%S %p)
- %P day-half of day from (amPm locale), converted to lowercase, am, pm
- %p day-half of day from (amPm locale), AM, PM
- %H hour of day (24-hour), 0-padded to two chars, 00 - 23
- %k hour of day (24-hour), space-padded to two chars, 0 - 23
- %I hour of day-half (12-hour), 0-padded to two chars, 01 - 12
- %l hour of day-half (12-hour), space-padded to two chars, 1 - 12
- %M minute of hour, 0-padded to two chars, 00 - 59
- %S second of minute (without decimal part), 0-padded to two chars, 00 - 60
- %q picosecond of second, 0-padded to twelve chars, 000000000000 - 999999999999.
- %Q decimal point and fraction of second, up to 12 second decimals, without trailing zeros. For a whole number of seconds, %Q omits the decimal point unless padding is specified.
UTCTime and ZonedTime
For UTCTime and ZonedTime:- %s number of whole seconds since the Unix epoch. For times before the Unix epoch, this is a negative number. Note that in %s.%q and %s%Q the decimals are positive, not negative. For example, 0.9 seconds before the Unix epoch is formatted as -1.1 with %s%Q.
DayOfWeek
For DayOfWeek (and Day and LocalTime and ZonedTime and UTCTime and UniversalTime):- %u day of week number for Week Date format, 1 (= Monday) - 7 (= Sunday)
- %w day of week number, 0 (= Sunday) - 6 (= Saturday)
- %a day of week, short form (snd from wDays locale), Sun - Sat
- %A day of week, long form (fst from wDays locale), Sunday - Saturday
Month
For Month (and Day and LocalTime and ZonedTime and UTCTime and UniversalTime):- %Y year, no padding. Note %0Y and %_Y pad to four chars
- %y year of century, 0-padded to two chars, 00 - 99
- %C century, no padding. Note %0C and %_C pad to two chars
- %B month name, long form (fst from months locale), January - December
- %b, %h month name, short form (snd from months locale), Jan - Dec
- %m month of year, 0-padded to two chars, 01 - 12
Day
For Day (and LocalTime and ZonedTime and UTCTime and UniversalTime):- %D same as %m/%d/%y
- %F same as %Y-%m-%d
- %x as dateFmt locale (e.g. %m/%d/%y)
- %d day of month, 0-padded to two chars, 01 - 31
- %e day of month, space-padded to two chars, 1 - 31
- %j day of year, 0-padded to three chars, 001 - 366
- %f century for Week Date format, no padding. Note %0f and %_f pad to two chars
- %V week of year for Week Date format, 0-padded to two chars, 01 - 53
- %U week of year where weeks start on Sunday (as sundayStartWeek), 0-padded to two chars, 00 - 53
- %W week of year where weeks start on Monday (as mondayStartWeek), 0-padded to two chars, 00 - 53
Duration types
The specifiers for DiffTime, NominalDiffTime, CalendarDiffDays, and CalendarDiffTime are semantically separate from the other types. Specifiers on negative time differences will generally be negative (think rem rather than mod).NominalDiffTime and DiffTime
Note that a "minute" of DiffTime is simply 60 SI seconds, rather than a minute of civil time. Use NominalDiffTime to work with civil time, ignoring any leap seconds. For NominalDiffTime and DiffTime:- %w total whole weeks
- %d total whole days
- %D whole days of week
- %h total whole hours
- %H whole hours of day
- %m total whole minutes
- %M whole minutes of hour
- %s total whole seconds
- %Es total seconds, with decimal point and up to <width> (default 12) decimal places, without trailing zeros. For a whole number of seconds, %Es omits the decimal point unless padding is specified.
- %0Es total seconds, with decimal point and <width> (default 12) decimal places.
- %S whole seconds of minute
- %ES seconds of minute, with decimal point and up to <width> (default 12) decimal places, without trailing zeros. For a whole number of seconds, %ES omits the decimal point unless padding is specified.
- %0ES seconds of minute as two digits, with decimal point and <width> (default 12) decimal places.
CalendarDiffDays
For CalendarDiffDays (and CalendarDiffTime):- %y total years
- %b total months
- %B months of year
- %w total weeks, not including months
- %d total days, not including months
- %D days of week
CalendarDiffTime
For CalendarDiffTime:- %h total hours, not including months
- %H hours of day
- %m total minutes, not including months
- %M minutes of hour
- %s total whole seconds, not including months
- %Es total seconds, not including months, with decimal point and up to <width> (default 12) decimal places, without trailing zeros. For a whole number of seconds, %Es omits the decimal point unless padding is specified.
- %0Es total seconds, not including months, with decimal point and <width> (default 12) decimal places.
- %S whole seconds of minute
- %ES seconds of minute, with decimal point and up to <width> (default 12) decimal places, without trailing zeros. For a whole number of seconds, %ES omits the decimal point unless padding is specified.
- %0ES seconds of minute as two digits, with decimal point and <width> (default 12) decimal places.
formatParseM :: MonadFail m => Format t -> String -> m ttime Data.Time.Format.ISO8601 Parse a value in the format
formatReadP :: Format t -> ReadP ttime Data.Time.Format.ISO8601 Read a value in the format
formatReadPExtension :: (FormatExtension -> Format t) -> ReadP ttime Data.Time.Format.ISO8601 Read a value in either extended or basic format
formatShow :: Format t -> t -> Stringtime Data.Time.Format.ISO8601 Show a value in the format, or error if unrepresentable
formatShowM :: Format t -> t -> Maybe Stringtime Data.Time.Format.ISO8601 Show a value in the format, if representable
formatCharacter :: FormatTime t => Bool -> Char -> Maybe (FormatOptions -> t -> String)time Data.Time.Format.Internal No documentation available.