[
    {
        "name": "Date.Extra.Format",
        "comment": " Date Format, turning dates into strings.\n\nThe format code originally came from and was modified and extended from.\n<https://github.com/mgold/elm-date-format/blob/1.0.4/src/Date/Format.elm>\n\n\n## Date presentation\n\n@docs format\n@docs formatUtc\n@docs formatOffset\n\n\n## Extra presentation convenience\n\n@docs isoString\n@docs isoStringNoOffset\n@docs utcIsoString\n\n\n## Low level formats used in specific places in library.\n\n@docs isoDateString\n@docs utcIsoDateString\n\n\n## Useful strings for format\n\n@docs isoFormat\n@docs isoMsecFormat\n@docs isoOffsetFormat\n@docs isoMsecOffsetFormat\n@docs isoDateFormat\n@docs isoTimeFormat\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "format",
                "comment": " Use a format string to format a date.\nThis gets time zone offset from provided date.\n",
                "type": "Config -> String -> Date -> String"
            },
            {
                "name": "formatOffset",
                "comment": " This adjusts date for offset, and renders with the offset\n",
                "type": "Config -> Int -> String -> Date -> String"
            },
            {
                "name": "formatUtc",
                "comment": " Convert date to utc then format it with offset set to 0 if rendered.\n",
                "type": "Config -> String -> Date -> String"
            },
            {
                "name": "isoDateFormat",
                "comment": " ISO Date.\n",
                "type": "String"
            },
            {
                "name": "isoDateString",
                "comment": " Return date as string.\n\nLow level routine required by areas like checkDateResult to avoid\nrecursive loops in Format.format.\n\n",
                "type": "Date -> String"
            },
            {
                "name": "isoFormat",
                "comment": " ISO date time, 24hr.\n",
                "type": "String"
            },
            {
                "name": "isoMsecFormat",
                "comment": " ISO Date time with milliseconds, 24hr.\n",
                "type": "String"
            },
            {
                "name": "isoMsecOffsetFormat",
                "comment": " ISO Date time with milliseconds and timezone, 24hr.\n",
                "type": "String"
            },
            {
                "name": "isoOffsetFormat",
                "comment": " ISO Date time with timezone, 24hr.\n",
                "type": "String"
            },
            {
                "name": "isoString",
                "comment": " Return date and time as string in local zone.\n",
                "type": "Date -> String"
            },
            {
                "name": "isoStringNoOffset",
                "comment": " Return date and time as string in local zone, without\na timezone offset as otuput by `Format.isoString`.\nIntroduced to deal with dates assuming local time zone.\n",
                "type": "Date -> String"
            },
            {
                "name": "isoTimeFormat",
                "comment": " ISO Time 24hr.\n",
                "type": "String"
            },
            {
                "name": "utcIsoDateString",
                "comment": " Utc variant of isoDateString.\n\nLow level routine required by areas like checkDateResult to avoid\nrecursive loops in Format.format.\n\n",
                "type": "Date -> String"
            },
            {
                "name": "utcIsoString",
                "comment": " Return date and time as string in ISO form with Z for UTC offset.\n",
                "type": "Date -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Utils",
        "comment": " Date Utils.\n\n2016/14/23 `fromString` was removed as its extra date validity checking had problems in\nmany timezones so it became the same as `Date.fromString`.\n\n\n## Date parsing\n\n**Be careful with unsafeFromString it will Debug.crash() if it cant parse date.**\n@docs unsafeFromString\n\n\n## Utility\n\n@docs dayList\n@docs isoWeek\n@docs isoWeekOne\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayList",
                "comment": " Return a list of days dayLength long for successive days\nstarting from startDate.\n\nNow adds 1 day if dayCount is +ve to create day list.\nNow subtracts 1 day if dayCount is -ve to create day list.\n\nThis could be made much faster by using `daysFromCivil`\nand not using underlying date system at all I believe.\n\n",
                "type": "Int -> Date -> List Date"
            },
            {
                "name": "isoWeek",
                "comment": " Return iso week values year, week, isoDayOfWeek.\nInput date is expected to be in local time zone of vm.\n",
                "type": "Date -> ( Int, Int, Int )"
            },
            {
                "name": "isoWeekOne",
                "comment": " Return date of start of ISO week one for given year.\n",
                "type": "Int -> Date"
            },
            {
                "name": "unsafeFromString",
                "comment": " Utility for known input string date creation cases.\nChecks for a fail just in case and calls Debug.crash().\n",
                "type": "String -> Date"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.TimeUnit",
        "comment": " Reduce or Increase a date to a given start or end of a TimeUnit granularity.\n\nThis allows you to modify a date to reset to minimum or maximum values\nall values below a given TimeUnit granulariy.\n\nThis operates in local time zone so if you are not in UTC time zone\nand you output date in UTC time zone the datefields will not be to the start\nor end of the TimeUnit.\n\nExample `TimeUnit.startOfTime Hour date` will return a modified date with\n\n  - Minutes to 0\n  - Seconds to 0\n  - Milliseconds to 0\n\nExample `TimeUnit.endOfTime Hour date` will return a modified date with\n\n  - Minutes to 59\n  - Seconds to 59\n  - Milliseconds to 999\n\n@docs startOfTime\n@docs endOfTime\n@docs TimeUnit\n\n**Warning about using endOfTime for date ranges**\n\nIn the past when I have encountered people using a function like endOfTime\n(max date at a given granularity) it was being used in ways that could introduce\nproblems.\n\nHere is why.\n\n  - You want to do a date range comparison between the minimum date\n    (or current date) and this maximum date. In all the cases I can\n    remember they were doing a date range comparison using\n    Greater Than Or Equal To minimum date and Less Than or Equal To maximum date.\n      - I can't state strongly enough that this is not the way to do date ranges\n        it leads to missed matches that fall between the generated maximum date\n        and the following date at the same granularity in systems were you are\n        working at a granularity larger than the underlying stored granularity.\n        Even if you are working at the smallest granularity of the system its a\n        not a good way to think about ranges.\n      - When comparing date ranges I strongly suggest you always use a\n        half closed interval. This means always build date ranges using\n        Greater Than or Equal To minimum date and Less Than maximum date.\n        (This applies to floating point numbers as well).\n          - Its equivalently safe to go Greater Than minimum and\n            Less Than or Equal to maximum, in my experience business understanding\n            nearly always dictated include minimum excluded maximum.\n      - Once you do this there is no possible gap and it becomes easier to think about.\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [
            {
                "name": "TimeUnit",
                "comment": " Date granularity of operations.\n",
                "args": [],
                "cases": [
                    [
                        "Millisecond",
                        []
                    ],
                    [
                        "Second",
                        []
                    ],
                    [
                        "Minute",
                        []
                    ],
                    [
                        "Hour",
                        []
                    ],
                    [
                        "Day",
                        []
                    ],
                    [
                        "Month",
                        []
                    ],
                    [
                        "Year",
                        []
                    ]
                ]
            }
        ],
        "aliases": [],
        "values": [
            {
                "name": "endOfTime",
                "comment": " Return a date created by increasing to maximum value all values below\na given TimeUnit granularity.\n\nThis modifies in local time zone values, as the date element parts\nare pulled straight from the local time zone date values.\n\n",
                "type": "TimeUnit -> Date -> Date"
            },
            {
                "name": "startOfTime",
                "comment": " Return a date created by reducing to minimum value all values below\na given TimeUnit granularity.\n\nThis modifies date in local time zone values, as the date element parts\nare pulled straight from the local time zone date values.\n\n",
                "type": "TimeUnit -> Date -> Date"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Field",
        "comment": " Setting a date field on a date.\n\n@docs fieldToDate\n@docs fieldToDateClamp\n@docs Field\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [
            {
                "name": "Field",
                "comment": " Configured Field and Value to set on date.\n\nAll field values are applied Modulus there maximum value.\n\n  - DayOfWeek\n      - The week keeps the same start of week day as passed in and changes day.\n  - Month\n      - Will not change year only the month of year.\n\n",
                "args": [],
                "cases": [
                    [
                        "Millisecond",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "Second",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "Minute",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "Hour",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "DayOfWeek",
                        [
                            "( Day, Day )"
                        ]
                    ],
                    [
                        "DayOfMonth",
                        [
                            "Int"
                        ]
                    ],
                    [
                        "Month",
                        [
                            "Month"
                        ]
                    ],
                    [
                        "Year",
                        [
                            "Int"
                        ]
                    ]
                ]
            }
        ],
        "aliases": [],
        "values": [
            {
                "name": "fieldToDate",
                "comment": " Set a field on a date to a specific value.\n\nIf your value in field is out side of valid range for\nthe date field this function will return Nothing.\n\n  - DayOfWeek cannot be invalid input range\n  - Month cannot be invalid\n\nValid ranges\n\n  - Millisecond 0 to 999\n  - Second 0 to 59\n  - Minute 0 to 59\n  - Hour 0 to 23\n  - DayOfMonth 1 to max day of month for year\n  - Year >= 0\n\n",
                "type": "Field -> Date -> Maybe Date"
            },
            {
                "name": "fieldToDateClamp",
                "comment": " Set a field on a date to a specific value.\n\nThis version clamps any input Field values to valid ranges as\ndescribed in the doc for fieldToDate function.\n\n",
                "type": "Field -> Date -> Date"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Duration",
        "comment": " A Duration is a length of time that may vary with calendar date\nand time. It can be used to modify a date.\n\nRepresents a period of time expressed in human chronological terms\nin terms of a calendar which may have varying components based upon\nthe dates involved in the math.\n\nWhen modify dates using Durations (Day | Month | Week | Year) this module\ncompensates for day light saving hour variations to minimise the scenarios\nthat cause the Hour field in the result to be different to the input date.\nIt can't completely avoid the hour changing as some hours are not a real\nworld date and hence will modify the hour more than the Duration modified.\n\nThis behaviour is modelled on momentjs so any observed behaviour that is\nnot the same as momentjs should be raised as an issue.\n\nNote adding or subtracting 24 * Hour units from a date may produce a\ndifferent answer to adding or subtracting a Day if day light saving\ntransitions occur as part of the date change.\n\n**Warning**\n\nBe careful if you add Duration Delta to a Date as Duration contains months\nand Years which are not fixed elapsed times like Period Delta, however if\nyou really need a relative number of months or years then it may meet\nyour needs.\n\n@docs add\n@docs Duration\n@docs DeltaRecord\n@docs zeroDelta\n@docs diff\n@docs diffDays\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [
            {
                "name": "Duration",
                "comment": " A Duration is time period that may vary with with calendar and time.\n\nUsing `Duration` adding 24 hours can produce different result to adding 1 day.\n\n",
                "args": [],
                "cases": [
                    [
                        "Millisecond",
                        []
                    ],
                    [
                        "Second",
                        []
                    ],
                    [
                        "Minute",
                        []
                    ],
                    [
                        "Hour",
                        []
                    ],
                    [
                        "Day",
                        []
                    ],
                    [
                        "Week",
                        []
                    ],
                    [
                        "Month",
                        []
                    ],
                    [
                        "Year",
                        []
                    ],
                    [
                        "Delta",
                        [
                            "DeltaRecord"
                        ]
                    ]
                ]
            }
        ],
        "aliases": [
            {
                "name": "DeltaRecord",
                "comment": " A multi granularity duration delta.\n\nThis does not contain week like Period.DeltaRecord.\nIt does contain month and year.\n\n",
                "args": [],
                "type": "{ year : Int, month : Int, day : Int, hour : Int, minute : Int, second : Int, millisecond : Int }"
            }
        ],
        "values": [
            {
                "name": "add",
                "comment": " Add duration * count to date.\n",
                "type": "Duration -> Int -> Date -> Date"
            },
            {
                "name": "diff",
                "comment": " Return a Period representing date difference. date1 - date2.\n\nIf you add the result of this function to date2 with addend of 1\nwill not always return date1, this is because this module supports\nhuman calendar concepts like Day Light Saving, Months with varying\nnumber of days dependent on the month and leap years. So the difference\nbetween two dates is dependent on when those dates are.\n\n**Differences to Period.diff**\n\n  - Duration DeltaRecord excludes week field\n  - Duration DeltaRecord includes month field\n  - Duration DeltaRecord includes year field\n  - Day is number of days difference between months.\n\nWhen adding a Duration DeltaRecord to a date.\nThe larger granularity fields are added before lower granularity fields\nso Years are added before Months before Days etc.\n\n  - Very different behaviour to Period diff\n      - If date1 > date2 then all fields in DeltaRecord will be positive or zero.\n      - If date1 < date2 then all fields in DeltaRecord will be negative or zero.\n  - Because it deals with non fixed length periods of time\n\nExample 1.\ndays in 2016/05 (May) = 31\ndays in 2016/04 (Apr) = 30\ndays in 2016/03 (Mar) = 31\n\ndays in 2015/03 (Mar) = 31\n\ndiff of \"2016/05/15\" \"2015/03/20\"\nresult naive field diff.\nyear 1, month 2, day -5\n\ndays \"2015/03/20\" to \"2015/04/01\" (31 - 20) = 11 days (12). still in march with 11.\ndays \"2015/04/01\" to \"2016/04/15\" (15 - 1) = 14 days\nmonths \"2016/04/15\" to \"2016/05/15\" 1 months\nresult field diff\nyear 1, month 1, day 26\n\nThis logic applies all the way down to milliseconds.\n\n",
                "type": "Date -> Date -> DeltaRecord"
            },
            {
                "name": "diffDays",
                "comment": " Returns date1 - date2 as number of days to add to date1 to get to day date2 is on.\n`date1 - date2 in days`.\n\nOnly calculates days difference and ignores any field smaller than day in calculation.\n\n",
                "type": "Date -> Date -> Int"
            },
            {
                "name": "zeroDelta",
                "comment": " All zero delta.\nUseful as a starting point if you want to set a few fields only.\n",
                "type": "DeltaRecord"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Compare",
        "comment": " Compare dates.\n\n@docs is\n@docs is3\n@docs Compare2\n@docs Compare3\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [
            {
                "name": "Compare2",
                "comment": " Date comparison type for 2 dates.\n\n  - After\n      - Return True if date1 is after date2.\n  - Before\n      - Return True if date1 is before date2.\n  - Same\n      - Return True if date1 is same as date2.\n  - SameOrAfter\n      - Return True if date1 is same or after date2.\n  - SameOrBefore\n      - Return True if date1 is same or before date2.\n\n",
                "args": [],
                "cases": [
                    [
                        "After",
                        []
                    ],
                    [
                        "Before",
                        []
                    ],
                    [
                        "Same",
                        []
                    ],
                    [
                        "SameOrAfter",
                        []
                    ],
                    [
                        "SameOrBefore",
                        []
                    ]
                ]
            },
            {
                "name": "Compare3",
                "comment": " Date comparison type for 3 dates.\n\nBetween does not care if date2 > date3 or date2 < date3.\n\n  - Between\n      - Return True if date1 is After date2 and Before date3\n      - Return True if date1 is After date3 and Before date2\n  - BetweenOpenStart\n      - Return True if date1 is SameOrAfter date2 and Before date3\n  - BetweenOpenEnd\n      - Return True if date1 is After date2 and SameOrBefore date3\n  - BetweenOpen\n      - Return True if date1 is SameOrAfter date2 and SameOrBefore date3\n\n",
                "args": [],
                "cases": [
                    [
                        "Between",
                        []
                    ],
                    [
                        "BetweenOpenStart",
                        []
                    ],
                    [
                        "BetweenOpenEnd",
                        []
                    ],
                    [
                        "BetweenOpen",
                        []
                    ]
                ]
            }
        ],
        "aliases": [],
        "values": [
            {
                "name": "is",
                "comment": " Compare two dates.\n",
                "type": "Compare2 -> Date -> Date -> Bool"
            },
            {
                "name": "is3",
                "comment": " Compare three dates.\n\nThis figures out the low and high bounds from date2\nand date3 using minimum and maximum of them respectively.\n\n",
                "type": "Compare3 -> Date -> Date -> Date -> Bool"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Create",
        "comment": " Create dates and offsets.\n\n@docs getTimezoneOffset\n@docs dateFromFields\n@docs timeFromFields\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dateFromFields",
                "comment": " Create a date in current time zone from given fields.\nAll field values are clamped to there allowed range values.\nHours are input in 24 hour time range 0 to 23 valid.\nReturns dates in current time zone.\n\nUsing algorithm from <http://howardhinnant.github.io/date_algorithms.html>\nSpecifically days_from_civil function.\n\nThe two `<*>Compensate` values adjust for the zone offset time\nintroduced by `epochDate` as starting point.\n\n",
                "type": "Int -> Month -> Int -> Int -> Int -> Int -> Int -> Date"
            },
            {
                "name": "getTimezoneOffset",
                "comment": " Return the time zone offset of current javascript environment underneath\nElm in Minutes. This should produce the same result getTimezoneOffset()\nfor a given date in the same javascript VM.\n\nTime zone offset is always for a given date and time so an input date is required.\n\nGiven that timezones change (though slowly) this is not strictly pure, but\nI suspect it is sufficiently pure to be useful. Is is dependent on the timezone\nmechanics of the javascript VM.\n\n\n### Example zone stuff.\n\nFor an offset of -600 minutes, in +10:00 time zone offset.\n\n",
                "type": "Date -> Int"
            },
            {
                "name": "timeFromFields",
                "comment": " Create a time in current time zone from given fields, for\nwhen you dont care about the date part but need time part anyway.\n\nAll field values are clamped to there allowed range values.\nThis can only return dates in current time zone.\n\nHours are input in 24 hour time range 0 to 23 valid.\n\nThis defaults to year 1970, month Jan, day of month 1 for date part.\n\n",
                "type": "Int -> Int -> Int -> Int -> Date"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Core",
        "comment": " Date core.\n\n\n## Info\n\n@docs monthToInt\n@docs intToMonth\n@docs daysInMonth\n@docs monthList\n@docs daysInNextMonth\n@docs daysInPrevMonth\n@docs daysInMonthDate\n@docs isLeapYear\n@docs isLeapYearDate\n@docs yearToDayLength\n@docs isoDayOfWeek\n\n\n## Utility\n\n@docs toFirstOfMonth\n@docs firstOfNextMonthDate\n@docs lastOfMonthDate\n@docs lastOfPrevMonthDate\n@docs daysBackToStartOfWeek\n\n\n## Conversion\n\n@docs fromTime\n@docs toTime\n\n\n## Iteration Utility\n\n@docs nextDay\n@docs prevDay\n@docs nextMonth\n@docs prevMonth\n\n\n## Date constants\n\n@docs epochDateStr\n\n\n## Date constants\n\n@docs ticksAMillisecond\n@docs ticksASecond\n@docs ticksAMinute\n@docs ticksAnHour\n@docs ticksADay\n@docs ticksAWeek\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "daysBackToStartOfWeek",
                "comment": " Return number of days back to start of week day.\n\nFirst parameter Date.day - is current day of week.\nSecond parameter Date.day - is start day of week.\n\n",
                "type": "Day -> Day -> Int"
            },
            {
                "name": "daysInMonth",
                "comment": " Return days in month for year month.\n",
                "type": "Int -> Month -> Int"
            },
            {
                "name": "daysInMonthDate",
                "comment": " Days in month for given date.\n",
                "type": "Date -> Int"
            },
            {
                "name": "daysInNextMonth",
                "comment": " Return days in next calendar month.\n",
                "type": "Date -> Int"
            },
            {
                "name": "daysInPrevMonth",
                "comment": " Return days in next calendar month.\n",
                "type": "Date -> Int"
            },
            {
                "name": "epochDateStr",
                "comment": " Epoch starting point for tick 0.\n",
                "type": "String"
            },
            {
                "name": "firstOfNextMonthDate",
                "comment": " Return first of next month date.\n",
                "type": "Date -> Date"
            },
            {
                "name": "fromTime",
                "comment": " Convenience fromTime as time ticks are Elm Ints in this library.\n",
                "type": "Int -> Date"
            },
            {
                "name": "intToMonth",
                "comment": " Return integer as month. Jan <= 1 Feb == 2 up to Dec > 11.\n",
                "type": "Int -> Month"
            },
            {
                "name": "isLeapYear",
                "comment": " Return True if Year is a leap year.\n",
                "type": "Int -> Bool"
            },
            {
                "name": "isLeapYearDate",
                "comment": " Return True if Year of Date is a leap year.\n",
                "type": "Date -> Bool"
            },
            {
                "name": "isoDayOfWeek",
                "comment": " Return the Iso DayOfWeek Monday 1, to Sunday 7.\n",
                "type": "Day -> Int"
            },
            {
                "name": "lastOfMonthDate",
                "comment": " Return date of last day of month.\n",
                "type": "Date -> Date"
            },
            {
                "name": "lastOfPrevMonthDate",
                "comment": " Return last of previous month date.\n",
                "type": "Date -> Date"
            },
            {
                "name": "monthList",
                "comment": " List of months in order from Jan to Dec.\n",
                "type": "List Month"
            },
            {
                "name": "monthToInt",
                "comment": " Return month as integer. Jan = 1 to Dec = 12.\n",
                "type": "Month -> Int"
            },
            {
                "name": "nextDay",
                "comment": " Return next day in calendar sequence.\n",
                "type": "Day -> Day"
            },
            {
                "name": "nextMonth",
                "comment": " Return next month in calendar sequence.\n",
                "type": "Month -> Month"
            },
            {
                "name": "prevDay",
                "comment": " Return previous day in calendar sequence.\n",
                "type": "Day -> Day"
            },
            {
                "name": "prevMonth",
                "comment": " Return previous month in calendar sequence.\n",
                "type": "Month -> Month"
            },
            {
                "name": "ticksADay",
                "comment": " Ticks in a day.\n",
                "type": "Int"
            },
            {
                "name": "ticksAMillisecond",
                "comment": " Ticks in a millisecond. (this is 1 on Win 7 in Chrome)\n",
                "type": "Int"
            },
            {
                "name": "ticksAMinute",
                "comment": " Ticks in a minute.\n",
                "type": "Int"
            },
            {
                "name": "ticksASecond",
                "comment": " Ticks in a second.\n",
                "type": "Int"
            },
            {
                "name": "ticksAWeek",
                "comment": " Ticks in a week.\n",
                "type": "Int"
            },
            {
                "name": "ticksAnHour",
                "comment": " Ticks in an hour.\n",
                "type": "Int"
            },
            {
                "name": "toFirstOfMonth",
                "comment": " Return date of first day of month.\n",
                "type": "Date -> Date"
            },
            {
                "name": "toTime",
                "comment": " Convenience toTime as time ticks are Elm Ints in this library.\n",
                "type": "Date -> Int"
            },
            {
                "name": "yearToDayLength",
                "comment": " Return number of days in a year.\n",
                "type": "Int -> Int"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Configs",
        "comment": " Get a Date Extra Config based up on a locale code.\n\n@docs getConfig\n@docs configs\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "configs",
                "comment": " Built in configurations.\n",
                "type": "Dict String Config"
            },
            {
                "name": "getConfig",
                "comment": " Get a Date Extra Config for a locale id.\n\nLower case matches strings and accepts \"-\" or \"_\" to seperate\nthe characters in code.\n\nReturns \"en_us\" config if it can't find a match in configs.\n\n",
                "type": "String -> Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_tr_tr",
        "comment": " This is the default Turkish config for formatting dates.\n\n@docs config\n\nCopyright (c) 2017 Mehmet Köse\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for en-us.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_pt_br",
        "comment": " This is the Brazilian Portuguese config for formatting dates.\n\n@docs config\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for pt-br.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_ja_jp",
        "comment": " This is the Japanese config for formatting dates.\n\n@docs config\n\nCopyright (c) 2017 Yosuke Torii\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for ja_jp.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_lt_lt",
        "comment": " This is the default Lithuanian config for formatting dates.\n\n@docs config\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for en-us.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_fr_fr",
        "comment": " This is the French config for formatting dates.\n\n@docs config\n\nCopyright (c) 2016-2017 Bruno Girin\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for fr-fr.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_et_ee",
        "comment": " This is the default Estonian config for formatting dates.\n\n@docs config\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for en-us.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_ro_ro",
        "comment": " This is the Romanian config for formatting dates.\n\n@docs config\n\nCopyright (c) 2016-2017 Cezar Halmagean\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for ro_ro.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_nl_nl",
        "comment": " This is the Dutch config for formatting dates.\n\n@docs config\n\nCopyright (c) 2016-2017 Mats Stijlaart\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for nl-nl.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_sv_se",
        "comment": " This is the Swedish config for formatting dates.\n@docs config\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for sv-se.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_pl_pl",
        "comment": " This is the Polish config for formatting dates.\n\n@docs config\n\nCopyright (c) 2016-2017 Bartosz Sokół\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for pl-pl.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_nb_no",
        "comment": " This is the Norwegian config for formatting dates.\n@docs config\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for nb-no.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_fi_fi",
        "comment": " This is the Finnish config for formatting dates.\n\n@docs config\n\nCopyright (c) 2016-2017 Ossi Hanhinen\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for fi-fi.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_en_us",
        "comment": " This is the default english config for formatting dates.\n\n@docs config\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for en-us.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_en_gb",
        "comment": " This is the UK english config for formatting dates.\n\n@docs config\n\nCopyright (c) 2016-2017 Bruno Girin\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for en-gb.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_de_de",
        "comment": " This is the default German config for formatting dates.\n\n@docs config\n\nCopyright (c) 2017 Frank Schmitt\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for en-us.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_es_es",
        "comment": " This is the Spanish config for formatting dates.\n\n@docs config\n\nCopyright (c) 2018 Ángel Herranz\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for es_es.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_en_au",
        "comment": " This is the default english config for formatting dates.\n\n@docs config\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for en-au.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_ru_ru",
        "comment": " This is the default russian config for formatting dates.\n\n@docs config\n\nCopyright (c) 2016-2017 Slava Turchaninov\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for ru-ru.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config.Config_el_gr",
        "comment": " This is the Greek (Greece) config for formatting dates.\n\n@docs config\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "config",
                "comment": " Config for el-gr.\n",
                "type": "Config"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Period",
        "comment": " Period is a fixed length of time. It is an elapsed time concept, which\ndoes not include the concept of Years Months or Daylight saving variations.\n\n  - Represents a fixed (and calendar-independent) length of time.\n\nName of type concept copied from NodaTime.\n\n@docs add\n@docs diff\n@docs Period\n@docs DeltaRecord\n@docs zeroDelta\n@docs toTicks\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [
            {
                "name": "Period",
                "comment": " A Period.\n\nWeek is a convenience for users if they want to use it, it does\njust scale Day in functionality so is not strictly required.\n\nDELTARECORD values are multiplied addend on application.\n\n",
                "args": [],
                "cases": [
                    [
                        "Millisecond",
                        []
                    ],
                    [
                        "Second",
                        []
                    ],
                    [
                        "Minute",
                        []
                    ],
                    [
                        "Hour",
                        []
                    ],
                    [
                        "Day",
                        []
                    ],
                    [
                        "Week",
                        []
                    ],
                    [
                        "Delta",
                        [
                            "DeltaRecord"
                        ]
                    ]
                ]
            }
        ],
        "aliases": [
            {
                "name": "DeltaRecord",
                "comment": " A multi granularity period delta.\n",
                "args": [],
                "type": "{ week : Int, day : Int, hour : Int, minute : Int, second : Int, millisecond : Int }"
            }
        ],
        "values": [
            {
                "name": "add",
                "comment": " Add Period count to date.\n",
                "type": "Period -> Int -> Date -> Date"
            },
            {
                "name": "diff",
                "comment": " Return a Period representing date difference. date1 - date2.\n\nIf you add the result of this function to date2 with addend of 1\nwill return date1.\n\n",
                "type": "Date -> Date -> DeltaRecord"
            },
            {
                "name": "toTicks",
                "comment": " Return tick counts for periods.\nUseful to get total ticks in a Delta.\n",
                "type": "Period -> Int"
            },
            {
                "name": "zeroDelta",
                "comment": " All zero delta.\nUseful as a starting point if you want to set a few fields only.\n",
                "type": "DeltaRecord"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_default",
        "comment": " Default values to be reused in multiple language configurations.\n\n@docs twelveHourPeriod\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "twelveHourPeriod",
                "comment": " 12-hour clock period (AM/PM) translation and formatting.\nThis should be valid for most latin-based languages.\n",
                "type": "TwelveHourPeriod -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.Config",
        "comment": " Date configuration.\n\nFor i18n for day and month names.\nParameter to Format.format* functions.\n\nThere is scope to put in some default format strings here.\n\n@docs Config\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [
            {
                "name": "Config",
                "comment": " Configuration for formatting dates.\n",
                "args": [],
                "type": "{ i18n : { dayShort : Day -> String, dayName : Day -> String, monthShort : Month -> String, monthName : Month -> String, dayOfMonthWithSuffix : Bool -> Int -> String, twelveHourPeriod : TwelveHourPeriod -> String }, format : { date : String, longDate : String, time : String, longTime : String, dateTime : String, firstDayOfWeek : Day } }"
            }
        ],
        "values": [],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_el_gr",
        "comment": " Greek values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n@docs twelveHourPeriod\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " No known special rules for Greek\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            },
            {
                "name": "twelveHourPeriod",
                "comment": " 12-hour clock period (AM/PM) translation and formatting.\n",
                "type": "TwelveHourPeriod -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_ru_ru",
        "comment": " Russian values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n@docs twelveHourPeriod\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " Just convert to string\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\nsources:\n<http://new.gramota.ru/spravka/buro/search-answer?s=242637>\n<http://www.unicode.org/cldr/charts/28/summary/ru.html#1753>\n",
                "type": "Month -> String"
            },
            {
                "name": "twelveHourPeriod",
                "comment": " 12-hour clock period (AM/PM) translation and formatting.\n",
                "type": "TwelveHourPeriod -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_tr_tr",
        "comment": " English values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\nCopyright (c) 2017 Mehmet Köse\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " Nothing to do here for Turkish\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_pt_br",
        "comment": " Brazilian Portuguese values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " Returns a common Brazilian Portuguse idiom for days of month. Pad indicates\nspace pad the day of month value so single digit outputs have space padding to\nmake them same length as double digit days of month.\n\nBecause only one day has a suffix I am not sure what to do with padding.\nHere 4 left seemed wrong as its a lot of white space for most numbers\nso have reduced it to 2.\n\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_pl_pl",
        "comment": " Polish values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\nCopyright (c) 2016-2017 Bartosz Sokół\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " This may not do anything in French\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_sv_se",
        "comment": " Swedish values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\nCopyright (c) 2016 Ossi Hanhinen\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " Nothing done here for now, but it might be needed\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_nl_nl",
        "comment": " Dutch values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " There is no idiom of day suffixes in Dutch.\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_lt_lt",
        "comment": " Lithuanian values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " Nothing to do here for Lithuanian.\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_et_ee",
        "comment": " Estonian values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " Nothing to do here for Estonian.\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.TwelveHourClock",
        "comment": " Definition of 12-Hour clock and AM/PMv alue for dates.\n@docs TwelveHourPeriod\n@docs twelveHourPeriod\n",
        "unions": [
            {
                "name": "TwelveHourPeriod",
                "comment": " 12-Hour clock abbreviations (AM/PM)\n",
                "args": [],
                "cases": [
                    [
                        "AM",
                        []
                    ],
                    [
                        "PM",
                        []
                    ]
                ]
            }
        ],
        "aliases": [],
        "values": [
            {
                "name": "twelveHourPeriod",
                "comment": " Common Date to AM/PM value.\n",
                "type": "Date -> TwelveHourPeriod"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_ja_jp",
        "comment": " Japanese values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\nCopyright (c) 2017 Yosuke Torii\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " No suffixes for Japanese\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_de_de",
        "comment": " German values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\nCopyright (c) 2017 Frank Schmitt\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " Nothing to do here for German\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_fr_fr",
        "comment": " French values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\nCopyright (c) 2016 Bruno Girin\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " Returns a common French idiom for days of month.\nPad indicates space pad the day of month value so single\ndigit outputs have space padding to make them same\nlength as double digit days of month.\n\nNote that the French idiom is to use the ordinal number\nfor the first day of the month (1er janvier) and\ncardinal numbers for all other days (15 janvier). This\nmethod doesn't pad the value on the right even if the\n`pad` argument is `true`.\n\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_en_us",
        "comment": " English values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\nCopyright (c) 2016-2018 Robin Luiten\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " Returns a common english idiom for days of month.\nPad indicates space pad the day of month value so single\ndigit outputs have space padding to make them same\nlength as double digit days of monnth.\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_ro_ro",
        "comment": " Romanian values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\nCopyright (c) 2016-2017 Cezar Halmagean\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " No suffixes for Romanian\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    },
    {
        "name": "Date.Extra.I18n.I_fi_fi",
        "comment": " Finnish values for day and month names.\n\n@docs dayShort\n@docs dayName\n@docs monthShort\n@docs monthName\n@docs dayOfMonthWithSuffix\n\nCopyright (c) 2016 Ossi Hanhinen\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dayName",
                "comment": " Day full name.\n",
                "type": "Day -> String"
            },
            {
                "name": "dayOfMonthWithSuffix",
                "comment": " This may not do anything in Finish\n",
                "type": "Bool -> Int -> String"
            },
            {
                "name": "dayShort",
                "comment": " Day short name.\n",
                "type": "Day -> String"
            },
            {
                "name": "monthName",
                "comment": " Month full name.\n",
                "type": "Month -> String"
            },
            {
                "name": "monthShort",
                "comment": " Month short name.\n",
                "type": "Month -> String"
            }
        ],
        "binops": []
    }
]