h$l      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""(None# Safe-Inferred+None  api-tools Render a  in ISO 8601 format to a precision of seconds (i.e. omitting any subseconds). api-toolsParse text as a  in ISO 8601 format or a number of slight variations thereof (the T may be replaced with a space, and the seconds, milliseconds and/or Z/ timezone indicator may optionally be omitted)."Time zone designations other than Z% for UTC are not currently supported. api-toolsParse text as a  in  YYYY-MM-DD format.  api-toolsParse text as a  in ISO 8601 format or a number of slight variations thereof (the T may be replaced with a space, and the seconds and timezone indicator may optionally be omitted).  api-tools Variant of = that throws an error if the input text could not be parsed.  api-tools Variant of = that throws an error if the input text could not be parsed.  None  #$;!"  api-toolsBinary data is represented in JSON format as a base64-encoded string api-toolsA default value for a field api-tools;the basic JSON types (N.B., no floating point numbers, yet) api-toolsa JSON UTF-8 string api-toolsa base-64-encoded byte string api-tools a JSON bool api-toolsa JSON integral number api-toolsa JSON UTC string api-toolsType is either a list, Maybe, a named element of the API or a basic type api-toolslist elements are types api-toolsMaybe elements are types  api-tools.the referenced type must be defined by the API! api-toolsa JSON string, int, bool etc." api-toolsa generic JSON value# api-toolsConversion possibly converts to an internal representation. If specified, a conversion is a pair of an injection function name and a projection function name.$ api-tools(SpecEnum is your classic enumerated type' api-tools%SpecUnion is your classsic union type* api-toolsIn addition to the type and comment, record fields may carry a flag indicating that they are read-only, and may have a default value, which must be of a compatible type.0 api-tools)SpecRecord is your classsic product type.C api-toolsSpecNewtype elements are isomorphisms of string, inetgers or booleansG api-toolstype/element specs are either simple type isomorphisms of basic JSON types, records, unions or enumerated typesM api-toolsa distinct case-insensitive short prefix used to form unique record field names and data constructors:"must be a valid Haskell identifiermust be unique within the APIN api-tools,Markdown comments are represented by stringsO api-toolsFieldName identifies recod fields and union alternatives must contain a valid identifier valid in Haskell and any API client wrappers (e.g., if Ruby wrappers are to be generated the names should easily map into Ruby)R api-tools6TypeName must contain a valid Haskell type constructorU api-tools/Specifies an individual element/type of the APIW api-toolsname of Haskell typeX api-tools#comment describing type in MarkdownY api-tools!distinct short prefix (see below)Z api-toolsthe type specification[ api-toolsoptional conversion functions_ api-toolsan API spec is made up of a list of type/element specs, each specifying a Haskell type and JSON wrappersc api-tools$Convert a default value to an Aeson . This differs from  as it will not round-trip with .: UTC default values are turned into strings.u api-toolsIt is sometimes helpful to write a type name directly as a string  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd_\]^UVWXYZ[RSTOPQNMGHIJKLCDEF012*+,-./'()$%&# !"?@AB;<=>789:3456 cb`adNone'v api-toolsA  a is something that can generate TH declarations from a value of type a#. Tools can be combined using the  instance. api-tools0Execute a tool to generate some TH declarations. api-toolsSettings to control the behaviour of API tools. This record may be extended in the future, so you should construct a value by overriding individual fields of . api-toolsGenerate a warning when an instance declaration is omitted because it already exists api-toolsRename the constructors of filtered newtypes and generate smart constructors that enforce the invariants api-tools+Default settings designed to be overridden. api-tools5Construct a tool that does not depend on any settings api-tools0Construct a tool that may depend on the settings api-tools is a contravariant functor api-tools8Make a tool that reads its argument to decide what to do api-tools?Apply a tool that acts on elements of a list to the entire list api-tools0Apply a tool that acts on nodes to an entire API api-toolsApply a tool that acts on datatype nodes (i.e. those that are not synonyms) to an entire API api-toolsCreate a tool that acts on nodes from its action on individual specs.None* api-toolsConstruct an idiomatic expression (an expression in an Applicative context), i.e. app ke [] = ke app ke [e1,e2,...,en] = ke <$> e1 <*> e2 ... <*> en api-toolsAdd an instance declaration for a class, if such an instance does not already exist api-tools-Construct a TH function with a type signature api-tools Construct a simple TH definition api-tools6Construct a simple TH definition with a type signature api-tools!Field name as a string expression api-toolsField name as a variable  None/@ api-toolsTool to generate datatypes and type synonyms corresponding to an API api-toolsTool to generate datatypes and type synonyms corresponding to an API, where the function specifies the derived classes for each datatype. api-toolsDefault names of classes for which to derive instances, depending on the type of API node. api-tools5Name of the type corresponding to the API node, e.g. JobId api-toolsName of the representation type corresponding to the API node, which differs from the  only if custom conversion functions are specified. This is also the name of the sole constructor for newtypes and records. api-tools%The type corresponding to an API node api-tools4The representation type corresponding to an API node api-tools%The constructor for a record API node api-tools5The constructor for a newtype, which might be renamed api-tools/A record field in an API node, as an expression api-tools+A record field in an API node, as a pattern api-tools Text that gives a string corresponding to the inhabitant of the type. For example, we generate something like this:  _text_FrameRate :: FrameRate -> T.Text _text_FrameRate fr = case fr of FRauto -> "auto" FR10 -> "10" FR15 -> "15" FR23_97 -> "23.97" FR24 -> "24" FR25 -> "25" FR29_97 -> "29.97" FR30 -> "30" FR60 -> "60" api-toolsFor an enum type E, name a map from Text1 values to inhabitants of the type, for example: _map_FrameRate :: Map Text FrameRate _map_FrameRate = genTextMap _text_FrameRate None7 api-toolsTool to generate  instances for generated types.None#$8 api-tools:Create human-readable API documentation in Markdown format api-tools8Document a single API comment or node in Markdown format   Safe-Inferred9Z api-toolsThe "oh noes!" operator. api-toolsAttempts to match the keys of the maps to produce a map from keys to pairs.  $None92None>:'NoneB api-tools"...and an enum is a set of values. api-tools<...similarly a union is a map from fields to alternatives... api-toolsThe canonical form of a record type is a map from fields to values... api-tools8The normal or canonical form for a type declaration, an U=. Equality of the normal form indicates equivalence of APIs.We track all types. api-toolsThe API type has too much extra info for us to be able to simply compare them with (==). Our strategy is to strip out ancillary information and normalise into a canonical form, and then we can use a simple (==) compare.Our normalised API discards most of the details of each type, keeping just essential information about each type. We discard order of types and fields, so we can use just associative maps. api-toolsCompute the normal form of an API, discarding extraneous information. api-tools5Compute the normal form of a single type declaration. api-tools)Find the set of type names used in an API api-tools0Find the set of type names used in a declaration api-tools*Find the set of type names used in an type api-tools&Check if a type is declared in the API api-tools+Check if a type is used anywhere in the API api-toolsCheck if the first type's transitive dependencies include the second type api-tools5Compute the transitive dependencies of a set of types api-toolsCompute the set of types that depend (transitively) on the given types api-toolsTest that all the free type names in a type are declared in the API. If not, return the set of undeclared types. api-toolsTest that all the types used in a type declaration are declared in the API. If not, return the set of undeclared types. api-toolsTest that all the types used in the API are declared. If not, return the set of undeclared types. api-tools0Substitute types for type names in a declaration api-tools)Substitute types for type names in a type api-tools6Rename the first type to the second throughout the APINone Eu api-toolsBuild a traversal of the root type (first argument) that updates values of the second type, e.g. traversalTool Root Sub produces traverseSubRoot :: Applicative f => (Sub -> f Sub) -> Root -> f Root=along with similar functions for all the types nested inside Root that depend on Sub.Note that types with custom representations will not have traversals generated automatically: if required, these must be defined manually in the same module as the call to :, otherwise the generated code will lead to scope errors.%None #$5M& api-toolsRecord of arguments that must be supplied to generate HTML documentation for a  api-tools4URL for individual call documentation from the index api-tools$URL for documentation of an API type api-tools Type for 4 response body, parameterised by possible JSON types api-toolsAn empty response api-tools!A JSON response of the given type api-toolsA non-empty, non-JSON response api-toolsExample response data from a  api-tools*HTTP status code for this example response api-toolsType of example response api-toolsContent of response, or  for empty response api-tools ps# returns errors from both arguments pf `ap` ps returns errors from pf only api-tools=Use this as a basis for overriding individual fields of the 4 record, in case more flags are added in the future. api-toolsRun a parser with given flags, starting in the outermost location, and returning warnings even if the parse was successful api-toolsRun the JSON parser on a value to produce a result or a list of errors with their positions. This should not be used inside an implementation of . as it will not pass on the current position. api-toolsRun the JSON parser on a value to produce a result or a list of errors with their positions. This version allows the  to be specified. api-toolsRun the JSON parser on a value to produce a result or a list of errors with their positions. This version allows the  to be specified, and produces warnings even if the parse succeeded. api-tools Decode a  ByteString and run the JSON parser api-tools Decode a  ByteString( and run the JSON parser, allowing the  to be specified api-tools!Suitable as an implementation of  parseJSON that uses the 9 instance (provided said instance was not defined using fromJSON!). api-toolsIt's contrary to my principles, but I'll accept a string containing a number instead of an actual number, and will silently truncate floating point numbers to integers... api-tools=Look up the value of a field, treating missing fields as null api-toolsLook up the value of a field, which may be read-only or use a default value (depending on the ). api-tools;Parse the value of a field, treating missing fields as null api-tools5Parse the value of a field, failing on missing fields api-toolsMatch an inhabitant of a disjoint union, which should be an object with a single field, and call the continuation corresponding to the field name.Nonen api-toolsTool to generate  and # instances for types generated by . This depends on 1. For historical reasons this does not generate & instances; you probably want to use  instead. api-toolsTool to generate ,  and # instances for types generated by . This depends on . Note that generated  and  instances will always agree on the decoding of a value, but that the 2 instances for basic types are more liberal than . api-toolsTool to generate  instance for an API node api-toolsTool to generate 0 instance for an API node, which relies on the  instance. api-toolsTool to generate  instance for an API nodeNoneoN api-toolsEncode an element of a union as single-element map from a field name to a value.Noneo api-toolsTool to generate # instances for types generated by . This depends on .NonepNone{ api-tools?A record is represented as a list of (field name, value) pairs.Invariant: these are in ascending order by field name, and there are no duplicates.*TODO: consider if it would be worth using  instead. api-toolsGeneric representation of a data value belonging to a schema type. This representation has the following properties::it is straightforward to convert into either CBOR or JSON;decoding CBOR or parsing JSON requires the schema, and takes advantage of it by introducing type distinctions and interning field names;&decoding CBOR is relatively efficient. api-tools Convert a  into a generic , failing if the type is not compatible. This requires type information so that it can introduce type distinctions absent in  , e.g. when  is used at type  ( t). api-toolsParse a generic  from a JSON , given the schema and expected type. This is not particularly optimized. For the other direction, use . api-toolsEfficiently encode a generic  in CBOR format. api-tools%Efficiently decode CBOR as a generic &, given the schema and expected type. api-toolsCheck that the value is of the given type in the schema, reporting the first error encountered if it does not conform. api-toolsGiven a schema, generate an arbitrary type corresponding to the schema and an arbitrary value of that type. api-toolsGiven a schema and a type, generate an arbitrary value of that type. api-tools'A reasonably varied generator for JSON s.Hack alert: we do not generate %, because Aeson fails to round-trip   ::  . api-tools&QuickCheck property that converting a 1 to and from JSON gives back the original value. api-toolsQuickCheck property that the type-specific JSON serialisation agrees with deserialising as generic JSON and then serialising again. api-tools&QuickCheck property that converting a 1 to and from CBOR gives back the original value. api-toolsQuickCheck property that the type-specific CBOR serialisation agrees with deserialising as generic CBOR and then serialising again. api-toolsInsert a (field, value) pair into a record, replacing the existing field if it is present and preserving the ordering invariant. api-toolsDelete a field from a record, trivially preserving the ordering invariant. api-tools>Rename a field in a record, preserving the ordering invariant. api-toolsSplit a record at a given field, returning the preceding fields, value and succeeding fields. Fails if the field is absent. api-toolsJoin together two records with a (field, value) pair in between. The ordering invariant is not checked!++None~ api-toolsWhen to validate the data against the schema (each level implies the preceding levels): api-tools Not at all api-tools!At start and end of the migration api-toolsAfter custom migrations api-toolsAfter every change api-toolsCustom migrations used in the changelog must be implemented in Haskell, and supplied in this record. There are three kinds:Whole-database migrations, which may arbitrarily change the API schema and the data to match;Type migrations, which may change the schema of a single type; andSingle field migrations, which may change only the type of the field (with the new type specified in the changelog).For database and type migrations, if the schema is unchanged, the corresponding function should return .The db, ty and fld parameters should be instantiated with the enumeration types generated by , which correspond to the exact set of custom migration tags used in the changelog. api-toolsMigrate a dataset from one version of an API schema to another. The data must be described by a named type, the name of which is assumed not to change.The db, rec and fld types must be enumerations of all the custom migration tags in the changelog, as generated by generateMigrationKind. api-tools:Lift a custom record migration to work on arbitrary values api-toolsLift a schema change on record types to work on arbitrary type declarations api-toolsUse for ,  or 7 to indicate that changes to the data are not required api-toolsUse for  or 3 to indicate that the schema should not be changed api-tools%The earliest version in the changelog api-tools#The latest version in the changelog api-toolsCheck that a changelog adequately describes how to migrate from one version to another. api-toolsCheck that a dataset matches an API, which is necessary for succesful migration. The name of the dataset's type must be specified. api-toolsGenerate enumeration datatypes corresponding to the custom migrations used in an API migration changelog. api-toolsStarting schema and version api-toolsEnding schema and version api-tools(Log of changes, containing both versions api-toolsCustom migration functions api-toolsName of the dataset's type api-tools"How thoroughly to validate changes api-toolsDataset to be migrated api-toolsStarting schema and version api-toolsEnding schema and version api-tools(Log of changes, containing both versions api-toolsCustom migration functions api-toolsName of the dataset's type api-tools"How thoroughly to validate changes api-toolsDataset to be migrated api-toolsStarting schema and version api-toolsEnding schema and version api-toolsChangelog to be validated api-toolsCustom migration functions api-toolsName of the dataset's type api-tools"How thoroughly to validate changesNone >9 9 None # api-tools+API description of the api-tools API itselfNoneD api-toolsSerialise a JSON value as a CBOR term in a generic but schema-dependent fashion. This is necessary because the JSON representation carries less information than we need in CBOR (e.g. it lacks a distinction between bytestrings and text). api-toolsConvert a JSON value into a CBOR term in a generic but schema-dependent fashion. api-toolsWhen a JSON value has been deserialised from CBOR, the representation may need some modifications in order to match the result of  on a Haskell datatype. In particular, Aeson's representation of  does not round-trip (because  is encoded as  and  x as  x), so CBOR uses a different representation (as an empty or 1-element list).None<  api-tools:Tool to generate a list of JSON round-trip tests of type [(, )]( with the given name. This depends on jsonTool and quickCheckTool. api-tools:Tool to generate a list of CBOR round-trip tests of type [(, )]( with the given name. This depends on cborTool and quickCheckTool. api-toolsTool to generate a list of CBOR-to-JSON conversion tests of type [(, )]. The first name must be the _ being tested, and the second should be the name of the declaration to be produced. This depends on cborTool, jsonTool and quickCheckTool. api-toolsTool to generate a list of JSON-to-CBOR conversion tests of type [(, )]. The first name must be the _ being tested, and the second should be the name of the declaration to be produced. This depends on cborTool, jsonTool and quickCheckTool. api-tools*Tool to generate a list of tests that the  generic representation agrees with the type-specific JSON representation. api-tools*Tool to generate a list of tests that the  generic representation agrees with the type-specific CBOR representation. api-toolsQuickCheck property that a . decodes to an expected Haskell value, using  api-toolsQuickCheck property that a . decodes to an expected Haskell value, using  with the given  api-tools=QuickCheck property that Haskell values can be encoded with toJSON and decoded with  to get the original value api-toolsQuickCheck property that CBOR decoding is a left inverse for encoding api-toolsQuickCheck property that toJSON agrees with encoding to CBOR directly and then decoding using the schema-aware generic decoder. From this and  it follows that >fromJSONWithErrs . deserialiseJSONWithSchema . serialise == id api-toolsQuickCheck property that direct encoding to CBOR agrees with conversion to JSON followed by the schema-aware generic encoder. From this and  it follows that 4deserialise . serialiseJSONWithSchema . toJSON == id   None api-tools/Generate the datatypes corresponding to an API. api-tools>Generate the datatypes corresponding to an API, allowing the  to be overriden. api-toolsApply a list of tools to an _, generating TH declarations. See the individual tool descriptions for details. Note that  must be called first, and some tools have dependencies, which must be included in the same or a preceding call to . api-toolsApply a list of tools to an _4, generating TH declarations. This form allows the  to be overridden.(NoneI!None 3l"None#$ api-tools;Take an API spec and generate a JSON description of the API api-tools"Generate an API spec from the JSON)*+,-./01234567889:;<=>?@ABCDEFGHIJKLMNNOPPQRRSTUVWWXYYZ[\\]^__`abcdeffghijklmnopqqrsstuuvwxyz{|}~                   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&'    !:!!!!!!!A!!!!!!!!!G!!!!!!!!!!!!!M!M!!!\!\!!!_!_!!!!!!b!!!!f!f!!!i!!!!!!u!u!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!a!`!^!]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""######)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)))))))(api-tools-0.9.0.0-EcrKx31KuVj4RIUXxwPGN0 Data.Binary.Serialise.CBOR.ExtraData.API.Doc.Subst Data.API.TimeData.API.TypesData.API.Tools.Combinators Data.API.THData.API.Tools.DatatypesData.API.Tools.SafeCopyData.API.Tools.QuickCheckData.API.Tools.LensData.API.Tools.ExampleData.API.Tools.EnumData.API.Tools.DeepSeqData.API.MarkdownData.API.Utils Data.API.PPData.API.NormalFormData.API.Tools.Traversal Data.API.DocData.API.Changes.TypesData.API.Error Data.API.JSONData.API.Tools.JSONData.API.Tools.CBORData.Binary.Serialise.CBOR.JSONData.API.ValueData.API.ChangesData.API.ParseData.API.API.DSLData.API.JSONToCBORData.API.Tools.JSONTestsData.API.ToolsData.API.API.Gen Data.API.APIData.API.TH.Compat Data.API.ScanData.API.Doc.TypesData.API.Doc.DirData.API.Doc.CallData.API.Tutorialbase Control.Monad<$!>DictsubstprepmkDictextDictprintUTCparseUTCparseDay parseUTC_oldunsafeParseUTCunsafeParseDay$fArbitraryUTCTimeBinary_Binary DefaultValue DefValList DefValMaybe DefValString DefValBool DefValInt DefValUtc BasicTypeBTstringBTbinaryBTboolBTintBTutcAPITypeTyListTyMaybeTyNameTyBasicTyJSON ConversionSpecEnumseAlts SpecUnionsuFields FieldTypeftType ftReadOnly ftDefault ftComment SpecRecordsrFieldsRegExre_textre_regexUTCRangeur_lour_hiIntRangeir_loir_hiFilterFtrStrgFtrIntgFtrUTC SpecNewtypesnTypesnFilterSpec SpNewtypeSpRecordSpUnionSpEnum SpSynonymPrefix MDComment FieldName _FieldNameTypeName _TypeNameAPINodeanName anCommentanPrefixanSpec anConvertThing ThCommentThNodeAPI inIntRange inUTCRangemkRegExdefaultValueAsJsValuebase64ToBinary$fArbitraryText$fLiftLiftedRepTypeName$fLiftLiftedRepFieldName$fNFDataIntRange$fLiftLiftedRepUTCRange$fNFDataUTCRange$fLiftLiftedRepRegEx $fShowRegEx $fEqRegEx$fFromJSONRegEx $fToJSONRegEx $fNFDataRegEx$fNFDataFilter$fNFDataSpecEnum$fNFDataBasicType$fNFDataAPIType$fIsStringAPIType$fNFDataSpecUnion$fNFDataSpecNewtype$fLiftLiftedRepDefaultValue$fNFDataDefaultValue$fNFDataFieldType$fNFDataSpecRecord $fNFDataSpec$fLiftLiftedRepAPINode$fNFDataAPINode $fNFDataThing$fArbitraryBinary$fFromJSONBinary$fToJSONBinary $fShowBinary $fEqBinary $fOrdBinary$fNFDataBinary$fSerialiseBinary $fEqThing$fLiftLiftedRepThing $fShowThing $fEqAPINode $fShowAPINode$fEqSpec$fLiftLiftedRepSpec $fShowSpec$fEqSpecRecord$fLiftLiftedRepSpecRecord$fShowSpecRecord $fEqFieldType$fLiftLiftedRepFieldType$fShowFieldType$fEqDefaultValue$fShowDefaultValue$fEqSpecNewtype$fLiftLiftedRepSpecNewtype$fShowSpecNewtype $fEqSpecUnion$fLiftLiftedRepSpecUnion$fShowSpecUnion $fEqAPIType$fLiftLiftedRepAPIType $fShowAPIType $fEqBasicType$fLiftLiftedRepBasicType$fShowBasicType $fEqSpecEnum$fLiftLiftedRepSpecEnum$fShowSpecEnum $fEqFilter$fLiftLiftedRepFilter $fShowFilter $fEqUTCRange$fShowUTCRange $fEqIntRange$fLiftLiftedRepIntRange$fShowIntRange $fEqFieldName$fOrdFieldName$fShowFieldName$fNFDataFieldName$fIsStringFieldName $fEqTypeName $fOrdTypeName$fShowTypeName$fNFDataTypeName$fIsStringTypeName$fSafeCopyBinary$fFromJSONThing $fToJSONThing$fFromJSONAPINode$fToJSONAPINode$fFromJSONTypeName$fToJSONTypeName$fFromJSONFieldName$fToJSONFieldName$fFromJSONSpec $fToJSONSpec$fFromJSONAPIType$fToJSONAPIType$fFromJSONDefaultValue$fToJSONDefaultValue$fFromJSONSpecEnum$fToJSONSpecEnum$fFromJSONSpecUnion$fToJSONSpecUnion$fFromJSONSpecRecord$fToJSONSpecRecord$fFromJSONFieldType$fToJSONFieldType$fFromJSONSpecNewtype$fToJSONSpecNewtype$fFromJSONFilter$fToJSONFilter$fFromJSONIntRange$fToJSONIntRange$fFromJSONUTCRange$fToJSONUTCRange$fFromJSONBasicType$fToJSONBasicType $fFromJSONCI $fToJSONCI APINodeToolAPIToolToolrunTool ToolSettingswarnOnOmittedInstancenewtypeSmartConstructorsdefaultToolSettings simpleToolmkTool contramapToolreadToolsubTools apiNodeToolapiDataTypeTool apiSpecTool $fMonoidTool$fSemigroupTool applicativeEoptionalInstanceDfunSigDsimpleD simpleSigD mkNameText fieldNameE fieldNameVarE typeNameE datatypesTooldatatypesTool'defaultDerivedClassestype_nm rep_type_nmnodeTnodeRepTnodeConEnodeNewtypeConE nodeFieldE nodeFieldP nodeAltConE nodeAltConPnewtypeProjectionE safeCopyToolquickCheckToollensToolbinaryExampleexample samplesTool exampleTool$fExampleUTCTime$fExampleValue$fExampleBinary $fExampleText $fExampleBool $fExampleInt $fExample[]$fExampleMaybeenumTool text_enum_nm map_enum_nm deepSeqToolMarkdownMethodsMDMmdmSummaryPostfixmdmLinkmdmPpmdmFieldDefaultdefaultMarkdownMethodsmarkdownthing MergeResult OnlyInLeftInBoth OnlyInRightsimpleParseVersion?!?!? mergeMapsdiffMaps matchMaps$fEqMergeResult$fShowMergeResultPPLinesppLinesPPpp inFrontOfindent$fPPDefaultValue $fPPBasicType $fPPAPIType $fPPFieldName $fPPTypeName$fPPText$fPPSet $fPPVersion$fPP[] $fPPLines(,) $fPPLines[]$fPPLinesValue NormEnumType NormUnionTypeNormRecordType NormTypeDecl NRecordType NUnionType NEnumType NTypeSynonymNNewtypeNormAPI apiNormalFormdeclNFtypeDeclsFreeVarstypeDeclFreeVars typeFreeVarstypeDeclaredInApi typeUsedInApitypeUsedInTransitiveDeptransitiveDepstransitiveReverseDeps typeIsValid declIsValid apiInvariant substTypeDecl substTyperenameTypeUses$fPPLinesNormTypeDecl$fNFDataNormTypeDecl$fEqNormTypeDecl$fShowNormTypeDecl traversalToolDocInfodoc_info_call_urldoc_info_type_urlBody EmptyBodyJSONBody OtherBodySample sample_status sample_typesample_responseViewview_id view_typeview_doc view_paramsParam param_name param_expl param_desc param_typeparam_requiredHeader header_name header_expl header_desc header_typeheader_requiredCallcall_http_method call_pathcall_descriptioncall_auth_required call_headers call_body call_params call_views call_samples StatusCode HTTPMethodURLrenderBodyType renderAPITypemk_linkdirHtmlcallHtmlAPITableChange APIChange ValidateData UpdateTypePos UpdateList UpdateMaybe UpdateNamed UpdateDeclPos UpdateHere UpdateRecord UpdateUnion UpdateType VersionExtraRelease DevVersion MigrationTag ChAddType ChDeleteType ChRenameType ChAddField ChDeleteField ChRenameField ChChangeField ChAddUnionAltChDeleteUnionAltChRenameUnionAlt ChAddEnumValChDeleteEnumValChRenameEnumVal ChCustomType ChCustomAll APIChangelog ChangesUpTo ChangesStartAPIWithChangelogshowVersionExtra$fPPLinesAPIChange$fPPVersionExtra$fPPLinesAPITableChange$fEqAPITableChange$fShowAPITableChange$fEqUpdateDeclPos$fShowUpdateDeclPos$fEqUpdateTypePos$fShowUpdateTypePos$fEqAPIChangelog$fShowAPIChangelog$fEqVersionExtra$fOrdVersionExtra$fShowVersionExtra $fEqAPIChange$fShowAPIChangeMigrateWarningMigrateFailureValidateFailure ValueErrorTypeKindTKRecordTKUnionTKEnum TKNewtype TKTypeSynonym ApplyFailure TypeExistsTypeDoesNotExist TypeWrongKind TypeInUse TypeMalformed DeclMalformed FieldExistsFieldDoesNotExistFieldBadDefaultValueDefaultMissingTableChangeErrorafExistingType afMissingType afTypeNameafExpectedKindafTypeafMissingTypesafDecl afTypeKindafExistingFieldafMissingField afFieldName afFieldType afBadDefaultafCustomMessageValidateWarningChangelogOutOfOrderCannotDowngrade ApiInvalidChangelogEntryInvalidChangelogIncompletevfLaterVersionvfEarlierVersion vfFromVersion vfToVersionvfInvalidVersionvfMissingDeclarationsvfSuccessfullyAppliedvfFailedToApplyvfApplyFailurevfChangelogVersionvfTargetVersion vfDifferences JSONErrorCustomMigrationError InvalidAPIStepInFieldInElemPositionFormatExpected FmtBinaryFmtUTCFmtOtherExpectedExpArrayExpBoolExpInt ExpObject ExpString JSONWarning BadFormat MissingField MissingAltUnexpectedFieldUnexpectedEnumVal IntRangeError UTCRangeError RegexError SyntaxError expectedArray expectedBool expectedIntexpectedObjectexpectedString badFormatprettyJSONErrorinField prettyStepprettyJSONErrorPositionsprettyMigrateFailureprettyValidateFailureprettyValueErrorprettyValueErrorPosition $fPPLinesStep $fPPTypeKind$fPPLinesApplyFailure$fPPLinesValidateFailure$fPPLinesValueError$fPPLinesMigrateFailure$fEqMigrateFailure$fShowMigrateFailure$fEqValueError$fShowValueError$fEqValidateFailure$fShowValidateFailure$fEqApplyFailure$fShowApplyFailure $fEqTypeKind$fShowTypeKind$fShowValidateWarning$fEqStep $fShowStep $fEqJSONError$fShowJSONError$fEqFormatExpected$fShowFormatExpected $fEqExpected$fShowExpected$fFromJSONJSONError$fToJSONJSONError$fFromJSONExpected$fToJSONExpected$fFromJSONFormatExpected$fToJSONFormatExpected$fFromJSONStep $fToJSONStep$fSafeCopyStepFromJSONWithErrsparseJSONWithErrs ParseFlags useDefaultsenforceReadOnlyFieldsenforceFiltersParserWithErrsdefaultParseFlagsrunParserWithErrsTopfromJSONWithErrsfromJSONWithErrs'fromJSONWithErrs''decodeWithErrsdecodeWithErrs'parseJSONDefaultwithParseFlagsfailWithwithInt withIntRange withBinarywithBoolwithText withRegExwithUTC withUTCRange withVersion withFieldwithDefaultField.:..:: withUnion$fMonadFailParserWithErrs$fMonadParserWithErrs$fAlternativeParserWithErrs$fApplicativeParserWithErrs$fFromJSONWithErrsVersion$fFromJSONWithErrsUTCTime$fFromJSONWithErrsText$fFromJSONWithErrsBinary$fFromJSONWithErrsBool$fFromJSONWithErrsInteger$fFromJSONWithErrsInt$fFromJSONWithErrs[]$fFromJSONWithErrsMaybe$fFromJSONWithErrs()$fFromJSONWithErrsValue$fFunctorParserWithErrsjsonTool jsonTool'toJsonNodeToolfromJsonNodeToolfromJsonWithErrsNodeToolencodeListWithencodeMaybeWithencodeRecordFields encodeUnion decodeUniondecodeListWithdecodeMaybeWithcborTool encodeJSON decodeJSON cborToJson jsonToCbor$fSerialiseValueField fieldName fieldValueRecordValueStringUTCTimeBytesBoolIntListMaybeUnionEnumJSONfromDefaultValuefromJSON parseJSONencodedecodematchesNormAPI expectRecord expectEnum expectUnion expectList expectMaybe lookupType arbitraryarbitraryOfTypearbitraryJSONValueprop_jsonRoundTripprop_jsonGenericprop_cborRoundTripprop_cborGeneric recordToMap mapToRecord insertField deleteField renameField findField joinRecords $fToJSONValue $fNFDataField $fNFDataValue $fEqField $fShowField $fEqValue $fShowValue DataChecksNoChecksCheckStartAndEnd CheckCustomCheckAllCustomMigrationsdatabaseMigrationdatabaseMigrationSchema typeMigrationtypeMigrationSchemafieldMigrationmigrateDataDumpmigrateDataDump'mkRecordMigrationmkRecordMigration'mkRecordMigrationSchema noDataChangesnoSchemaChangeschangelogStartVersionchangelogVersionvalidateChangesdataMatchesAPIgenerateMigrationKinds$fEqDataChecks$fOrdDataChecksparseAPIparseAPIWithChangelogapiapiWithChangelogapiAPIserialiseJSONWithSchemajsonToCBORWithSchemadeserialiseJSONWithSchemapostprocessJSON jsonTestsTool cborTestsToolcborToJSONTestsTooljsonToCBORTestsTooljsonGenericValueTestsToolcborGenericValueTestsToolprop_decodesToprop_decodesTo'prop_resultsMatchRoundtripprop_cborRoundtripprop_cborToJSONprop_jsonToCBORgenerate generateWithgenerateAPIToolsgenerateAPIToolsWithDV_listDV_maybe DV_string DV_boolean DV_integerDV_utc BT_string BT_binary BT_boolean BT_integerBT_utcTypeRef_TypeRefTY_listTY_maybeTY_refTY_basicTY_json_fd_name_fd_type _fd_readonly _fd_default _fd_comment _cv_injection_cv_projection_ur_lo_ur_hi_ir_lo_ir_hiRegularExpression_RegularExpression FT_string FT_integerFT_utc_sn_type _sn_filter SP_newtype SP_recordSP_unionSP_enum SP_synonym_an_name _an_comment _an_prefix_an_spec _an_convertAPISpec$fOrdBasicType$fBoundedBasicType$fEnumBasicType$fIsStringTypeRef $fShowTypeRef $fEqTypeRef $fOrdTypeRef$fShowConversion$fEqConversion$fIsStringRegularExpression$fShowRegularExpression$fEqRegularExpression$fOrdRegularExpression_text_BasicType_map_BasicType an_comment an_convertan_name an_prefixan_spec sn_filtersn_typeregularExpression cv_injection cv_projection fd_comment fd_defaultfd_name fd_readonlyfd_typetypeRef apiAPISamplesapiAPITestsJSONapiAPITestsCBORapiAPITestsCBORToJSONapiAPITestsJSONToCBOR$fExampleDefaultValue$fExampleBasicType$fExampleTypeRef$fExampleAPIType$fExampleField$fExampleConversion$fExampleUTCRange$fExampleIntRange$fExampleRegularExpression$fExampleFilter$fExampleSpecNewtype $fExampleSpec$fExampleAPINode$fSafeCopyDefaultValue$fSafeCopyBasicType$fSafeCopyTypeRef$fSafeCopyAPIType$fSafeCopyField$fSafeCopyConversion$fSafeCopyUTCRange$fSafeCopyIntRange$fSafeCopyRegularExpression$fSafeCopyFilter$fSafeCopySpecNewtype$fSafeCopySpec$fSafeCopyAPINode$fArbitraryDefaultValue$fArbitraryBasicType$fArbitraryTypeRef$fArbitraryAPIType$fArbitraryField$fArbitraryConversion$fArbitraryUTCRange$fArbitraryIntRange$fArbitraryRegularExpression$fArbitraryFilter$fArbitrarySpecNewtype$fArbitrarySpec$fArbitraryAPINode$fNFDataTypeRef$fNFDataConversion$fNFDataRegularExpression$fSerialiseDefaultValue$fSerialiseBasicType$fSerialiseTypeRef$fSerialiseAPIType$fSerialiseField$fSerialiseConversion$fSerialiseUTCRange$fSerialiseIntRange$fSerialiseRegularExpression$fSerialiseFilter$fSerialiseSpecNewtype$fSerialiseSpec$fSerialiseAPINode$fFromJSONWithErrsDefaultValue$fFromJSONWithErrsBasicType$fFromJSONWithErrsTypeRef$fFromJSONTypeRef$fToJSONTypeRef$fFromJSONWithErrsAPIType$fFromJSONWithErrsField$fFromJSONField $fToJSONField$fFromJSONWithErrsConversion$fFromJSONConversion$fToJSONConversion$fFromJSONWithErrsUTCRange$fFromJSONWithErrsIntRange#$fFromJSONWithErrsRegularExpression$fFromJSONRegularExpression$fToJSONRegularExpression$fFromJSONWithErrsFilter$fFromJSONWithErrsSpecNewtype$fFromJSONWithErrsSpec$fFromJSONWithErrsAPINode extractAPI convertAPI unconvertAPI$fFromJSONWithErrsThing StrictnessmkDataD mkInstanceD mkNewtypeD annIsStrict annNotStrict time-1.9.3 Data.Time.Clock.Internal.UTCTimeData.Time.Calendar.DaysDay$aeson-1.5.6.0-870135Zj7ONHLS6Ov5aIRaData.Aeson.Types.InternalData.Aeson.Types.ToJSONtoJSONData.Aeson.Types.FromJSONGHC.BaseMonoid(safecopy-0.10.4.1-6GB8mTjvybXE7YmRhMTjbmData.SafeCopy.SafeCopySafeCopy(QuickCheck-2.14.2-9AhRAvZYUVyKu9RkvnejmbTest.QuickCheck.Arbitrary Arbitrarydeepseq-1.4.4.0Control.DeepSeqNFDataTokenJsonIntegerVersion AlternativeSemiDefaultChangesUTCToCommentBarBInaryBraKetColColColonCommaEqualsLtEqGtEqBooleanQueryWithBasicAddedRemovedRenamedChanged MigrationNOTHINGTRUEFALSEReadonlyUTCTIMETypeIdenVarIdenIntgStrgERRORPTokenAlexPosnAlexPnkeywordsscan GHC.MaybeNothingghc-prim GHC.ClassesOrd Data.Version*attoparsec-0.13.2.5-LFVpDZTD5NvLA4Amoro1Bj#Data.Attoparsec.ByteString.InternalParserMonad ApplicativeToJSONFromJSON(serialise-0.2.3.0-Bt4JVVQcfAIHBVE43X0ZAwCodec.Serialise.Class Serialisecontainers-0.6.2.1Data.Map.InternalMapNullJustHappyStkTest.QuickCheck.PropertyProperty