úÎ.Ý)´(      !"#$%&'NoneJK()() 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./01234./01234None +0246 5Type 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?6&Is the top-level constructor a TUnion?&Is the top-level constructor a TArray? 56789:;   56789:;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*.A 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 declarationB Makes a generic identifier name.C»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.DOTopological sorting of splitted types so that it is accepted declaration order.E4Computes 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.F"Remaps type labels according to a G.'HIJKLMN?GOPQRST@ABUCVWXYZ[\]"^#_`aDE$%F"#$%#"$%$HIJKLMN?GOPQRST@ABUCVWXYZ[\]"^#_`aDE$%FNone&ŽDefault output filname is used, when there is no explicit output file path, or it is "-" (stdout). Default module name is consistent with it.&bcd'&''&&bcd'e      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM<NNOPQRSTUVWXYZ[\]^_`abcdefeghijson-autotype-0.2.5.2Data.Aeson.AutoType.AlternativeData.Aeson.AutoType.TypeData.Aeson.AutoType.ExtractData.Aeson.AutoType.FormatData.Aeson.AutoType.CodeGenData.Aeson.AutoType.UtilData.Aeson.AutoType.Pretty:|:AltRightAltLefttoEither fromEitheraltTypeTArrayTObjTLabelTUnionTStringTNumTBoolTNullDictunDictwithDictkeys 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