h$.+      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None> core-dataFormat string describing full (nanosecond) precision ISO8601 time, 2014-07-31T23:09:35.274387019Z None8> core-data7Convert between different representations of time. Our  timestamp has nanosecond precision so converting from a type with lesser or greater precision will require you to either pad with zeros or to round to the nearest nanosecond (who the hell has picoseconds of anything anyway?) if writing an instance of this type.,The most important instance is probably the  one, as many other Haskell libraries use this type to represent time. core-data+Number of nanoseconds since the Unix epoch.The  and  instances display the  as seconds with the nanosecond precision expressed as a decimal amount after the interger, ie:t <- getCurrentTimeNanosecondsformatExternal t "2014-07-31T23:09:35.274387031Z"However this doesn't change the fact the underlying representation counts nanoseconds since epoch:show $ unTime t"1406848175274387031" There is a  Externalize+ instance that is reasonably accommodating: it will be the timestamp of midnight 00:00:00.0 on that date.  core-dataConvert to the elapsed time with sub-second precision type from  hourglass, giving you ready access to that library's time formatting and calendar date manipulation functions. core-data&Number of nanoseconds since the epoch.None> core-dataTypes that represent collections of elements that can be converted to s. Haskell's ecosystem has several such. This typeclass provides an adaptor to convert between them.8This typeclass also provides a mechanism to serialize a  out to a Haskell list. The list will be ordered according to the  instance of the element type.Instances are provided for  containers's    and unordered-containers's   ! in addition to the instance for [] lists described above. core-dataA set of unique elements.5The element type needs to be an instance of the same ( typeclass that is used for keys in the   type above. Instances are already provided for many common element types. implements , (, etc so many common operations such as ' to walk the elements and reduce them, ' to return the size of the collection,  to test whether is empty, and (.) to take the union of two sets are available.)To convert to other collection types see  below.(this is a thin wrapper around unordered-containers's   , but if you use the conversion functions to extract a list the list will be ordered according to the elements'  instance) core-data>Types that represent key/value pairs that can be converted to  s. Haskell's ecosystem has several such. This typeclass provides an adaptor to get between them. It also allows you to serialize out to an association list.For example, to convert a  2 to an "association list" of key/value pairs, use :  answers ::     answers = #8 "Life, The Universe, and Everything" 42 list :: [(,)] list =  answers Instances are provided for  containers's   and unordered-containers's ! in addition to the instance for [(,)] lists shown above. core-dataTypes that can be used as keys in dictionaries or elements in collections.To be an instance of  a type must implement both  and . This requirement means we can subsequently offer easy conversion between different the dictionary and collection types you might encounter when interacting with other libraries.Instances for this library's  and 7 are provided here, along with many other common types.  core-dataA mapping from keys to values.1The keys in a map needs to be an instance of the  typeclass. Instances are already provided for many common element types.  implements , (, etc so many common operations such as , to reduce the structure with a right fold, 9 to get the number of key/value pairs in the dictionary, ( to test whether the map is empty, and (*) to join two maps together are available.)To convert to other dictionary types see  below.(this is a thin wrapper around unordered-containers's , but if you use the conversion functions to extract the key/value pairs in a list the list will be ordered according to the keys'  instance)" core-data(A dictionary with no key/value mappings.# core-data9Construct a dictionary with only a single key/value pair.$ core-dataInsert a key/value pair into the dictionary. If the key is already present in the dictionary, the old value will be discarded and replaced with the value supplied here.% core-dataIf the dictionary contains the specified key, return the value associated with that key.& core-data.Does the dictionary contain the specified key?( core-dataAn empty collection. This is used for example as an inital value when building up a  using a fold.) core-data% H core-dataConvert between the internal Haskell representation of a data type and an external, textual form suitable for visualization, onward transmission, or archival storage.(It is expected that a valid instance of H% allows you to round-trip through it:formatExternal (42 :: Int))"42"$fromJust (parseExternal "42") :: Int42with the usual caveat about needing to ensure you've given enough information to the type-checker to know which instance you're asking for.5There is a general implementatation that goes though  and  via  but if you know you have a direct way to render or parse a type into a sequence of characters then you can offer an instance of H which does so more efficiently.I core-dataConvert a value into an authoritative, stable textual representation for use externally.J core-dataAttempt to read an external textual representation into a Haskell value.K core-data-Numbers are converted to scientific notation:  2.99792458e8 L core-data#Days are formatted as per ISO 8601:  2022-06-20 M core-data)Timestamps are formatted as per ISO 8601: 2022-06-20T14:51:23.544826062Z N core-data1Unique identifiers are formatted as per RFC 4122: %6937e157-d041-4919-8690-4d6c12b7e0e3 O core-dataIEEE 754 floating point: 3.141592653589793 P core-dataIEEE 754 floating point:  3.1415927 Q core-data$Integers are represented in decimal: 42 R core-data$Integers are represented in decimal: 42 S core-data$Integers are represented in decimal: 42 HIJHIJNone  08*W core-dataSupport for pretty-printing JSON values with syntax highlighting using the  prettyprinter library. To output a JSON structure to terminal colourized with ANSI escape codes you can use the  instance:  debug "j" (render j)  will get you: ,23:46:04Z (00.007) j = { "answer": 42 } ` core-dataKeys in a JSON object.b core-data A JSON value.i core-data,Given a JSON value, encode it to UTF-8 bytesI know we're not supposed to rely on types to document functions, but really, this one does what it says on the tin.j core-dataGiven a JSON value, encode it to a Rope (which, by definition, is UTF-8 internally).k core-data>Given an array of bytes, attempt to decode it as a JSON value.l core-dataGiven an string that is full of a bunch of JSON, attempt to decode it.m core-data Used by the  instance to turn symbolic annotations into ANSI colours annotations. If you're curious, the render pipeline looks like:  render = intoText .  renderStrict .  reAnnotateS  .  layoutPretty defaultLayoutOptions . o WXYZ[\]^_`abcdefghijklmnoijklbcdefgh`aWXYZ[\]^_mnoNone*HIJW_^]\[ZXY`abhgfecdijklmno !"#$%&'()*+ ,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoppqrstuvwxyz{|}~(core-data-0.3.6.0-1gkNwVGL6TeJWsgONTlR5UCore.Data.ClockCore.Data.StructuresCore.Encoding.ExternalCore.Encoding.JsonCore.Data.Format ExternalizeData.Time.Calendar toGregorianData.SetSet Data.HashSetHashSetData.Map.StrictMapData.HashMap.StrictHashMap Core.Data Core.EncodingInstantfromTimeintoTimeTimeunTimegetCurrentTimeNanoseconds epochTime$fFromJSONTime $fToJSONTime $fReadTime $fShowTime $fInstantDay$fInstantElapsedP$fInstantNominalDiffTime$fInstantUTCTime$fInstantInt64$fEqTime $fOrdTime $fEnumTime $fBoundedTime $fGenericTime CollectionEfromSetintoSet DictionaryKVfromMapintoMapKeyunMapemptyMap singletonMapinsertKeyValuelookupKeyValue containsKeyunSetemptySet singletonSet insertElementcontainsElement $fFoldableMap $fIsListMap $fMonoidMap$fSemigroupMap$fKeyByteString$fKeyInt $fKeyChar $fKeyText $fKeyText0 $fKeyBytes $fKeyRope$fKey[]$fDictionary[]$fDictionaryMap$fDictionaryHashMap$fDictionaryMap0 $fMonoidSet$fSemigroupSet $fFoldableSet$fCollection[]$fCollectionSet$fCollectionHashSet$fCollectionSet0 $fShowSet$fEqSet $fShowMap$fEqMap$fBifoldableMapformatExternal parseExternal$fExternalizeScientific$fExternalizeDay$fExternalizeTime$fExternalizeUUID$fExternalizeDouble$fExternalizeFloat$fExternalizeInt64$fExternalizeInt32$fExternalizeInt$fExternalize[]$fExternalizeRope$fExternalizea JsonToken SymbolToken QuoteTokenKeyToken StringToken EscapeToken NumberToken BooleanToken LiteralTokenJsonKey JsonValue JsonObject JsonArray JsonString JsonNumberJsonBoolJsonNull encodeToUTF8 encodeToRopedecodeFromUTF8decodeFromRope colourizeJson prettyKey prettyValue$fFromJSONRope$fPrettyJsonKey$fTextualJsonKey $fKeyJsonKey$fHashableJsonKey$fPrettyJsonValue$fFractionalJsonValue$fNumJsonValue$fIsStringJsonValue$fRenderJsonKey$fRenderJsonValue $fEqJsonValue$fShowJsonValue$fGenericJsonValue $fEqJsonKey $fShowJsonKey$fGenericJsonKey$fIsStringJsonKey $fOrdJsonKeyISO8601_Precise Posix_Seconds Posix_Milli Posix_Micro Posix_PreciseISO8601_Seconds time-1.9.3 Data.Time.Clock.Internal.UTCTimeUTCTimebaseGHC.ShowShowGHC.IntInt64GHC.NumNumGHC.RealRealIntegralData.Time.Calendar.DaysDayghc-prim GHC.ClassesOrd Data.FoldableFoldableGHC.BaseMonoidfoldrlengthnull<>(core-text-0.3.8.0-5CupsXtIko96uOzp7abCPpCore.Text.RopeRope GHC.TypesInt'hashable-1.4.1.0-IypROHlyjAZLPs4aCIu8orData.Hashable.ClassHashableCore.Text.BytesBytesGHC.ReadReadStringCore.Text.UtilitiesRender colourize