úÎ.º)ž'      !"#$%&None JK'('( 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.B»Convert 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.5.0Data.Aeson.AutoType.AlternativeData.Aeson.AutoType.TypeData.Aeson.AutoType.ExtractData.Aeson.AutoType.FormatData.Aeson.AutoType.CodeGenData.Aeson.AutoType.UtilData.Aeson.AutoType.Pretty:|:AltRightAltLefttoEither fromEitherTypeTArrayTObjTLabelTUnionTStringTNumTBoolTNullDictunDictwithDictkeys emptyTypegettypeSize typeAsSetisObjectisSimpleisArray hasNonTopTObjhasTObj valueSize valueTypeSize valueDepth extractType unifyTypessplitTypeByLabeldisplaySplitTypesunificationCandidatesunifyCandidatesdefaultOutputFilenamewriteHaskellModule $fFromJSON:|: $fToJSON:|:withFileOrHandlewithFileOrDefaultHandleassertM $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