҃      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-Inferred   (c) MicrosoftMITadamsap@microsoft.com provisionalportable Safe-Inferred /Maps elements of a list and combines them with 1 using given separator, ending with a separator./Maps elements of a list and combines them with 3 using given separator, starting with a separator./Maps elements of a list and combines them with  using given separator.fThe function takes a function and a Maybe value. If the Maybe value is Nothing, the function returns :, otherwise, it applies the function to the value inside  and returns the result.If the 3rd argument is not D the function wraps it between the first and second argument using , otherwise it return ."Wraps the string argument between < and >, unless the argument is $ in which case the function returns ."Wraps the string argument between [ and ], unless the argument is $ in which case the function returns ."Wraps the string argument between { and }, unless the argument is $ in which case the function returns ."Wraps the string argument between ( and ), unless the argument is $ in which case the function returns .     (c) MicrosoftMITadamsap@microsoft.com provisionalportableNone bSeparates elements of a list with new lines. Starts new lines at the specified indentation level. uSeparates elements of a list with comma followed by a new line. Starts new lines at the specified indentation level. zSeparates elements of a list with new lines, ending with a new line. Starts new lines at the specified indentation level. }Separates elements of a list with new lines, beginning with a new line. Starts new lines at the specified indentation level. fSeparates elements of a list with two new lines. Starts new lines at the specified indentation level.Separates elements of a list with two new lines, ending with two new lines. Starts new lines at the specified indentation level.qReturns common header for generated files using specified single-line comment lead character(s) and a file name.     (c) MicrosoftMITadamsap@microsoft.com provisionalportable Safe-Inferred0PThe top level type representing the Bond schema definition abstract syntax tree. Jhttps://microsoft.github.io/bond/manual/compiler.html#namespace-definition Namespace declaration.Language annotation for namespaces. Note that language-specific namespaces are only supported for backward compatibility and are not recommended. Ghttps://microsoft.github.io/bond/manual/compiler.html#import-statementsImport declaration.A declaration of a schema type.  Bhttps://microsoft.github.io/bond/manual/compiler.html#type-aliasestype alias definition" Ihttps://microsoft.github.io/bond/manual/compiler.html#forward-declarationforward declaration# Ehttps://microsoft.github.io/bond/manual/compiler.html#enum-definitionenum definition% Ghttps://microsoft.github.io/bond/manual/compiler.html#struct-definitionstruct definition,Type parameter of a  >https://microsoft.github.io/bond/manual/compiler.html#genericsgeneric % or type  0Constraint on a ,.1*the type parameter allows only value types2Definition of an  constant.6Definition of a % field.> Ghttps://microsoft.github.io/bond/manual/compiler.html#custom-attributes Attribute* for attaching user defined metadata to a  or a 6BDefault value of a field.C&explicitly specified default value of nothingDname of an enum 2IType in the Bond type systemJTuser defined type or an instance of a generic type with the specified type argumentsKtype parameter of a generic % or   declarationL5an integer argument in an instance of a generic type  S*type for fields with the default value of nothingd2Specifies whether a field is required or optional.ebdeserialization will not fail if the field is missing but it can't be omitted during serializationf=field is required, deserialization will fail if it is missingg9field is optional and may be omitted during serializationhRepresents fully qualified nameY !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghY !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghbh%#" &'()*+&'($&()&()!6789:;<=BHGFEDCdgfe2345Icba`_^]\[ZYXWVUTSRQPONMLKJ,-./01>?@A%#" &'()*+&'($&()&()!,-./0123456789:;<=>?@ABHGFEDCIcba`_^]\[ZYXWVUTSRQPONMLKJdgfeh (c) MicrosoftMITadamsap@microsoft.com provisionalportable Safe-InferrediReturns ! if the type represents a scalar.jReturns ) if the type represents unsigned integer.kReturns ' if the type represents signed integer.lReturns . if the type represents floating point number.mReturns ) if the type represents a meta-name type.nReturns ! if the type represents a string.oReturns + if the type represents a list or a vector.pReturns ' if the type represents a map or a set.qReturns D if the type represents a container (i.e. list, vector, set or map).rReturns A if the type represents a struct or a struct forward declaration.sReturns ( if the type represents a nullable type.tRecursively map a I into another I.ExamplesChange lists into vectors: JlistToVector = fmapType f where f (BT_List x) = BT_Vector x f x = xu4Maps all fields, including fields of the base, to a %, and combines the results. Returns  if type is not a struct.Examples(Check if there are any container fields: nanyContainerFields :: Type -> Bool anyContainerFields = getAny . foldMapFields (Any . isContainer . fieldType)vLike u but takes a  as an argument instead of I.wMaps all parts of a I to a  and combines the results.Examples For a type: list<nullable<int32>>the result is: O f (BT_List (BT_Nullable BT_Int32)) <> f (BT_Nullable BT_Int32) <> f BT_Int32w[ resolves type aliases. E.g. given the following type alias declaration (Bond IDL syntax): using Array<T, N> = vector<T>;"the result for the following type: Array<int32, 10>is: d f (BT_UserDefined Alias{..} [BT_Int32, BT_IntTypeArg 10]) <> f (BT_Vector BT_Int32) <> f BT_Int32xResolves a type alias declaration with given type arguments. Note that the function resolves one level of aliasing and thus may return a type alias.ijklmnopqrstuvwxijklmnopqrstuvwxijklnqopsrmtuvwxijklmnopqrstuvwx  Safe-Inferred    (c) MicrosoftMITadamsap@microsoft.com provisionalportableNone  Safe-Inferred y#Specification of namespace mapping.{schema namespace|namespace in the generated code}&Specification of a type alias mapping.qualified name of a type alias=list of fragments comprising the custom mapping for the alias3Specification of a fragment of type alias mappings.\placeholder for the n-th type argument of the type alias, applicable only to generic aliaseshardcoded string fragmentMParse a type alias mapping specification used in command-line arguments of  Jhttps://microsoft.github.io/bond/manual/compiler.html#command-line-optionsgbc.Examples > parseAliasMapping "Example.OrderedSet=SortedSet<{0}>" Right (AliasMapping {aliasName = ["Example","OrderedSet"], aliasTemplate = [Fragment "SortedSet<",Placeholder 0,Fragment ">"]})LParse a namespace mapping specification used in command-line arguments of  Jhttps://microsoft.github.io/bond/manual/compiler.html#command-line-optionsgbc.Examples > parseNamespaceMapping "bond=Microsoft.Bond" Right (NamespaceMapping {fromNamespace = ["bond"], toNamespace = ["Microsoft","Bond"]})yz{|}~ yz{|}~ yz{|}~ (c) MicrosoftMITadamsap@microsoft.com provisionalportableNone+An opaque type representing a type mapping.The  encapsulates information about mapping Bond types into types in the target language. A context instance is passed to code generation templates.Returns the namespace for the W. The namespace may be different than specified in the schema definition file due to  #namespace-mappingnamespace mapping.Returns the namespace for a  in the specified .)Builds a qualified name in the specified . Builds the qualified name for a  in the specified .Builds the name of a I in the specified .0Builds the name to be used when instantiating a IJ. The instance type name may be different than the type name returned by " when the latter is an interface.Builds the annotated name of a I. The type annotations are used to express type information about a Bond type that doesn't directly map to the target language type system (e.g. distinction between a nullable and non-nullable string in C# type system).Returns 1 if the alias has a custom mapping in the given .The Bond IDL type name mapping."The default C++ type name mapping./C++ type name mapping using a custom allocator.!The default C# type name mapping.[C# type name mapping using interfaces rather than concrete types to represent collections.:     !yz{|}~!}~yz{|,       (c) MicrosoftMITadamsap@microsoft.com provisionalportableNoneReturns an instance of  Dhttps://microsoft.github.io/bond/manual/compiler.html#runtime-schema SchemaDefo for the specified type. The SchemaDef is encoded using the Bond Simple JSON protocol and returned as a lazy ., !"#$%&'()*+,-./0123456789:;<=> !"#$%&'()*+,-./0123456789:;<=> None9Protocol data type is used to specify what protocols the Apply- function overloads should be generated for.3Name of the class implementing the protocol reader.3Name of the class implementing the protocol writer.???None@ABCDEFGHIJKLM @ABCDEFGIJKLM@ABCDEFGHIJKLMNone Codegen template for generating  base_name*_apply.cpp containing definitions of the Apply0 function overloads for the specified protocols.List of protocols for which Apply overloads should be generatedNone Codegen template for generating  base_name%_apply.h containing declarations of  Khttps://microsoft.github.io/bond/manual/bond_cpp.html#optimizing-build-timeApply1 function overloads for the specified protocols.List of protocols for which Apply overloads should be generated#Optional attribute to decorate the Apply function declarationsNone Codegen template for generating  base_name7_enum.h containing definitions of enums. Generated by  5https://microsoft.github.io/bond/manual/compiler.htmlgbc with  --enum-header flag.None Codegen template for generating  base_name6_reflection.h containing schema metadata definitions.None Codegen template for generating  base_name[_type.cpp containing definitions of helper functions and schema metadata static variables.None Codegen template for generating  base_nameF_type.h containing definitions of C++ types representing the schema. $list of optional header files to be #include'ed by the generated code3 to generate enum definitions into a separate file  base_name_enum.h:optional custom allocator to be used in the generated codeNone NOPQRSTUVNOPTUV NOPQRSTUVNone9Representation of schema fields in the generated C# types#auto-properties with private setterauto-properties public fields#C# representation of schema structspublic partial classPCodegen template for generating definitions of C# types representing the schema.)Specifies how to represent schema structs(Specifies how to represent schema fields (c) MicrosoftMITadamsap@microsoft.com provisionalportableNone Safe-Inferred%WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{Z[\]^_`abcdefghijlmnoprstuvyz{%WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ (c) MicrosoftMITadamsap@microsoft.com provisionalportable Safe-Inferred+Parses content of a schema definition file.$|}~ path of the file containing the Ghttps://microsoft.github.io/bond/manual/compiler.html#import-statementsimport statement,(usually relative) path of the imported fileTthe resolver function returns the resolved path of the imported file and its content)source name, used only for error messages!content of a schema file to parseDpath of the file being parsed, used to resolve relative import paths+function to resolve and load imported filesfunction returns 9 which represents the parsed abstract syntax tree or  ParserError if parsing failed|}~ !"#$%&'(()*+,,-./01233456789:;<=>?@AABCDEFFGHIIJKLMNOPPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~            8         !"#$%&&'()*+,--./012334567899:;<==>?@AABCDEFGHIJ KLMNOPQRSTUVWXYZ[\]^_`aSbcdefghijk lmnopqrstuvwxyz{|}~0 bond-0.4.0.1Language.Bond.UtilLanguage.Bond.Codegen.UtilLanguage.Bond.Syntax.TypesLanguage.Bond.Syntax.Util!Language.Bond.Codegen.TypeMappingLanguage.Bond.Syntax.SchemaDefLanguage.Bond.Codegen.TemplatesLanguage.Bond.Parser Paths_bondLanguage.Bond.Syntax.InternalLanguage.Bond.Syntax.JSON#Language.Bond.Codegen.CustomMapping(Language.Bond.Codegen.Cpp.ApplyOverloadsLanguage.Bond.Codegen.Cpp.Util#Language.Bond.Codegen.Cpp.Apply_cpp!Language.Bond.Codegen.Cpp.Apply_h Language.Bond.Codegen.Cpp.Enum_h&Language.Bond.Codegen.Cpp.Reflection_h#Language.Bond.Codegen.Cpp.Types_cpp!Language.Bond.Codegen.Cpp.Types_hLanguage.Bond.Codegen.Cs.Util!Language.Bond.Codegen.Cs.Types_csLanguage.Bond.LexersepEndBy sepBeginBysepByoptionalbetweenanglesbracketsbracesparens newlineSep commaLineSep newlineSepEndnewlineBeginSep doubleLineSepdoubleLineSepEnd commonHeaderBond bondImportsbondNamespacesbondDeclarations Namespace nsLanguagensNameLanguageJavaCsCppImport DeclarationAlias aliasTypeForwardEnum enumConstantsStructdeclNamespacesdeclAttributesdeclName declParams structBase structFields TypeParam paramNameparamConstraint ConstraintValueConstant constantName constantValueFieldfieldAttributes fieldOrdinal fieldModifier fieldType fieldName fieldDefault AttributeattrName attrValueDefaultDefaultNothing DefaultEnum DefaultString DefaultFloatDefaultInteger DefaultBoolTypeBT_UserDefined BT_TypeParam BT_IntTypeArg BT_BondedBT_MapBT_Set BT_Nullable BT_VectorBT_ListBT_MaybeBT_BlobBT_MetaFullName BT_MetaName BT_WString BT_StringBT_Bool BT_DoubleBT_Float BT_UInt64 BT_UInt32 BT_UInt16BT_UInt8BT_Int64BT_Int32BT_Int16BT_Int8ModifierRequiredOptionalRequiredOptional QualifiedNameisScalar isUnsignedisSignedisFloat isMetaNameisStringisList isAssociative isContainerisStruct isNullablefmapType foldMapFieldsfoldMapStructFields foldMapType resolveAliasNamespaceMapping fromNamespace toNamespace AliasMapping aliasName aliasTemplateFragment PlaceholderparseAliasMappingparseNamespaceMapping TypeMappingMappingContext typeMapping aliasMappingnamespaceMapping namespaces getNamespacegetDeclNamespacegetQualifiedNamegetDeclTypeName getTypeNamegetInstanceTypeNamegetAnnotatedTypeNamecustomAliasMappingidlTypeMappingcppTypeMappingcppCustomAllocTypeMapping csTypeMapping!csCollectionInterfacesTypeMappingencodeSchemaDefProtocolprotocolReaderprotocolWriter apply_cppapply_henum_h reflection_h types_cpptypes_h FieldMappingReadOnlyProperties Properties PublicFields StructMappingClasstypes_csImportResolver parseBondcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebase Data.Monoidmappendmempty Data.MaybeJustindent commaLinenewLine doubleLine$fToTextInteger$fToTextDouble$fToTextWord16GHC.Enumghc-prim GHC.TypesTrueMonoid ShowPretty showPrettytakeName takeNamespaceshowQualifiedNameshowTypeParams metaField isBaseField$fShowPrettyDeclaration$fShowPrettyTypeParam$fShowPrettyConstraint $fToJSONBond$fFromJSONBond$fToJSONNamespace$fFromJSONNamespace$fToJSONConstraint$fFromJSONConstraint $fToJSONField$fFromJSONField$fToJSONDefault$fFromJSONDefault $fToJSONType$fFromJSONType$fToJSONModifier$fToJSONAttribute$fToJSONConstant$fToJSONTypeParam$fToJSONDeclaration$fToJSONImport$fToJSONLanguageParser whitespace identifier qualifiedNamesymbolequalintegerTypeNameBuilderlanguageglobal separatormapType fixSyntaxinstanceMappingelementMappingannotatedMapping csCollectionInstancesTypeMappingcsAnnotatedTypeMapping<<>><>><<>pureTextcommaSepTypeNamestypeName localWithelementTypeNameinstanceTypeNameannotatedTypeNameresolveNamespacedeclQualifiedNamedeclQualifiedTypeName declTypeNamefindAliasMapping aliasTypeNameidlTypecppTypecppTypeCustomAlloccomparer allocator pairAllocator cppSyntaxFixcsTypecsInterfaceTypecsTypeAnnotationbytestring-0.10.4.0Data.ByteString.Lazy.Internal ByteStringVariant uint_value int_value double_value string_value wstring_valuenothingMetadatanamequalified_name attributesmodifier default_valueTypeDefid struct_defelementkey bonded_typeFieldDef _metadata_id_type StructDefmetadatabase_deffields SchemaDefstructstypeId makeSchemaDef$fToJSONSchemaDef$fToJSONStructDef$fToJSONFieldDef$fToJSONTypeDef$fToJSONMetadata$fToJSONVariantapplyOverloads openNamespacecloseNamespace structName structParamstemplate attributeInit modifierTag defaultValue enumValueschemaMetadatadefaultedFunctionsrvalueReferencesifndefenumDefinitiondisableReSharperWarningspropertyAttributestypeAttributesgeneratedCodeAttridloptionalTypeAttributesschemaAttributesparamConstraints LanguageDefbondIdllexercoloncomma commaSep1decimalkeywordlexemenaturalsemisemiSep whiteSpacenamespaceLexernamespaceIdentifiersemiEndcommaEnd commaEnd1 semiOrCommasemiOrCommaSepsemiOrCommaSep1semiOrCommaEndsemiOrCommaSepEndsemiOrCommaSepEnd1quotequotes stringLiteralunescapedStringLiteralfloat EnvironmentcurrentNamespaces currentParams currentFile resolveImportSymbolssymbolsimportsbondimport_ processImport declaration updateSymbols findSymbol findStruct namespace parametersaliasforwardviewstruct manySortedByfieldenum basicType complexTypeuserTypetype_ftype