.)'      !"#$%&None '('( Safe-Inferred)Generic function for opening file if the filename is not empty nor "-", or using given handle otherwise (probably stdout, stderr, or stdin). TODO: Should it become utility function?)*+,)*+)*+,None *0M-./0123-./0123None +0246 4Type alias for HashMap2Make operation on a map to an operation on a Dict.Take all keys from dictionary. Empty type&Lookup the Type within the dictionary. Size of the  term.$Is the top-level constructor a TObj?#Is it a simple (non-compound) Type?5&Is the top-level constructor a TUnion?&Is the top-level constructor a TArray? 456789:   456789:None;;Unify sets of types (sets are union types of alternatives).<"Smart constructor for union types.=Simplify TUnion's so there is no TUnion directly inside TUnion. If there is only one element of the set, then return this single element as a type. ;<=     ;<=None M >Explanatory type alias for making declarations First element of the pair is original JSON identifier, second element of the pair is the mapped identifier name in Haskell.?Make ToJSON declaration, given identifier (object name in Haskell) and mapping of its keys from JSON to Haskell identifiers *in the same order* as in *data type declaration*.@Make ToJSON declaration, given identifier (object name in Haskell) and mapping of its keys from JSON to Haskell identifiers in the same order as in declarationA Makes a generic identifier name.BConvert a JSON key name given by second argument, from within a dictionary keyed with first argument, into a name of Haskell record field (hopefully distinct from other such selectors.)!gSplits initial type with a given label, into a mapping of object type names and object type structures.COTopological sorting of splitted types so that it is accepted declaration order.D4Computes all type labels referenced by a given type.#JFor a given splitted types, it returns candidates for extra unifications.$(Unifies candidates on a give input list.E"Remaps type labels according to a F.'GHIJKLM>FNOPQRS?@ATBUVWXYZ[\!]"^_`CD#$E!"#$"!#$$GHIJKLM>FNOPQRS?@ATBUVWXYZ[\!]"^_`CD#$ENone%Default output filname is used, when there is no explicit output file path, or it is "-" (stdout). Default module name is consistent with it.%abc&%&&%%abc&d      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL;MMNOPQRSTUVWXYZ[\]^_`abcdedfghjson-autotype-0.2.4.0Data.Aeson.AutoType.AlternativeData.Aeson.AutoType.TypeData.Aeson.AutoType.ExtractData.Aeson.AutoType.FormatData.Aeson.AutoType.CodeGenData.Aeson.AutoType.UtilData.Aeson.AutoType.PrettyAlt SecondAltFirstAlttoEither fromEitherTypeTArrayTObjTLabelTUnionTStringTNumTBoolTNullDictunDictwithDictkeys emptyTypegettypeSize typeAsSetisObjectisSimpleisArray hasNonTopTObjhasTObj valueSize valueTypeSize valueDepth extractType unifyTypessplitTypeByLabeldisplaySplitTypesunificationCandidatesunifyCandidatesdefaultOutputFilenamewriteHaskellModule $fFromJSONAlt $fToJSONAltwithFileOrHandlewithFileOrDefaultHandleassertM $fHashableSet formatPair $fOutText $fOutHashMap$fOutSet $fOutValue $fOutVector$fOutScientificMapisUnion$fUniplateType $fOutType $fOrdDict $fShowDict $fOutDict unifyUnionunion simplifyUnion MappedKey makeFromJSON makeToJSONgenericIdentifiernormalizeFieldNametoposort allLabels remapLabels DeclState_decls_counterfst3 TypeTreeMTypeTreeDeclMcounterdeclsstepMtShowwrapDeclnewDeclkeywordsescapeKeywords emptySetLikes formatType emptyTypeReprrunDecladdTypesplitTypeByLabel'formatObjectTypenormalizeTypeName capitalize uncapitalizeheaderepilogue