-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Quasi-quoter for UTCTime times
--   
--   Quasi-quoter for UTCTime times
@package time-qq
@version 0.0.1.0


-- | This module provides quasi quoters for writing time literals.
--   
--   First enable the <a>QuasiQuotes</a> language extension, then you will
--   be able to write the the following:
--   
--   <pre>
--   &gt;&gt;&gt; [utcIso8601| 2048-12-01  |] :: UTCTime
--   2048-12-01 00:00:00 UTC
--   </pre>
--   
--   Unparseable dates will throw errors at compile time.
--   
--   Zoned time quoters are not provided as the time library doesn't seem
--   to do anything with "%Z".
module Data.Time.QQ

-- | ISO8601 date with seconds and optional "." with more precision
--   following to a <a>UTCTime</a>.
--   
--   Do not specify a timezone, the time should be UTC.
--   
--   <pre>
--   &gt;&gt;&gt; [utcIso8601| 2048-12-01  |] :: UTCTime
--   2048-12-01 00:00:00 UTC
--   </pre>
utcIso8601 :: QuasiQuoter

-- | ISO8601 date with seconds and optional "." with more precision
--   following to a <a>UTCTime</a>.
--   
--   Do not specify a timezone, the time should be UTC.
--   
--   <pre>
--   &gt;&gt;&gt; [utcIso8601ms| 2099-01-01T00:00:00.42324 |]
--   2099-01-01 00:00:00.42324 UTC
--   </pre>
utcIso8601ms :: QuasiQuoter

-- | Timezones from a reference string, to a <a>TimeZone</a>.
--   
--   <pre>
--   &gt;&gt;&gt; [timeZone| BST |] :: TimeZone
--   BST
--   </pre>
timeZone :: QuasiQuoter

-- | This is the simplest representation of UTC. It consists of the day
--   number, and a time offset from midnight. Note that if a day has a leap
--   second added to it, it will have 86401 seconds.
data UTCTime
UTCTime :: Day -> DiffTime -> UTCTime

-- | the day
[utctDay] :: UTCTime -> Day

-- | the time from midnight, 0 &lt;= t &lt; 86401s (because of
--   leap-seconds)
[utctDayTime] :: UTCTime -> DiffTime

-- | A TimeZone is a whole number of minutes offset from UTC, together with
--   a name and a "just for summer" flag.
data TimeZone
TimeZone :: Int -> Bool -> String -> TimeZone

-- | The number of minutes offset from UTC. Positive means local time will
--   be later in the day than UTC.
[timeZoneMinutes] :: TimeZone -> Int

-- | Is this time zone just persisting for the summer?
[timeZoneSummerOnly] :: TimeZone -> Bool

-- | The name of the zone, typically a three- or four-letter acronym.
[timeZoneName] :: TimeZone -> String

-- | Build a <a>UTCTime</a> QuasiQuoter for a given format string, as per
--   <a>readTime</a>.
utcFormat :: String -> QuasiQuoter

-- | Build a <a>TimeZone</a> QuasiQuoter for a given format string, as per
--   <a>readTime</a>.
timeZoneFormat :: String -> QuasiQuoter
instance Language.Haskell.TH.Syntax.Lift Data.Time.Clock.Internal.UTCTime.UTCTime
instance Language.Haskell.TH.Syntax.Lift Data.Time.Clock.Internal.DiffTime.DiffTime
instance Language.Haskell.TH.Syntax.Lift Data.Time.Calendar.Days.Day
instance Language.Haskell.TH.Syntax.Lift Data.Time.LocalTime.Internal.TimeZone.TimeZone
