P       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   Safe         (c) Microsoft MIT adamsap@microsoft.com  provisional  portable Safe /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) Microsoft MIT adamsap@microsoft.com  provisional  portable None 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) Microsoft MIT adamsap@microsoft.com  provisional  portable Safe!"5PThe 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."Bond schema declaration# Ghttps://microsoft.github.io/bond/manual/compiler.html#struct-definitionstruct definition$ Ehttps://microsoft.github.io/bond/manual/compiler.html#enum-definitionenum definition% Ihttps://microsoft.github.io/bond/manual/compiler.html#forward-declarationforward declaration& Bhttps://microsoft.github.io/bond/manual/compiler.html#type-aliasestype alias definition' Hhttps://microsoft.github.io/bond/manual/compiler.html#service-definitionservice definition1Method of a service8Type parameter of a  >https://microsoft.github.io/bond/manual/compiler.html#genericsgeneric # or type &<Constraint on a 8.=*the type parameter allows only value types>Definition of an  constant.BDefinition of a # field.J Ghttps://microsoft.github.io/bond/manual/compiler.html#custom-attributes Attribute* for attaching user defined metadata to a " or a BNDefault value of a field.Sname of an enum >T&explicitly specified default value of nothingUType in the Bond type systemf*type for fields with the default value of nothingm5an integer argument in an instance of a generic type &ntype parameter of a generic # or & declarationoTuser defined type or an instance of a generic type with the specified type argumentsp2Specifies whether a field is required or optional.q9field is optional and may be omitted during serializationr=field is required, deserialization will fail if it is missingsbdeserialization will not fail if the field is missing but it can't be omitted during serializationtRepresents fully qualified nameb !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstb !"$#%&'()*+,-./0132456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstrt !"#$%&'()*+,-()*.(*+(*+/()*+0BCDEFGHINOPQRSTpqrs>?@AUVWXYZ[\]^_`abcdefghijklmno89:;<=1234567467JKLM !"#$%&'()*+,-()*.(*+(*+/()*+01 23456746789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst(c) Microsoft MIT adamsap@microsoft.com  provisional  portable Safe!"Returns  ! if the type represents a scalar.Returns  ) if the type represents unsigned integer.Returns  ' if the type represents signed integer.Returns  . if the type represents floating point number.Returns  ) if the type represents a meta-name type.Returns  ! if the type represents a string.Returns  + if the type represents a list or a vector.Returns  ' if the type represents a map or a set.Returns  D if the type represents a container (i.e. list, vector, set or map).Returns  A if the type represents a struct or a struct forward declaration.Returns   if the type represents an enumReturns  ( if the type represents a nullable type.Recursively map a U into another U.ExamplesChange lists into vectors: JlistToVector = fmapType f where f (BT_List x) = BT_Vector x f x = x4Maps 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)Like  but takes a " as an argument instead of U.Maps all parts of a U 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_Int32[ 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_Int32Resolves a type alias declaration with given type arguments. Note that the function resolves one level of aliasing and thus may return a type alias. Safe!" "#$%&'()*+,#$%&() "#$%&'()*+,(c) Microsoft MIT adamsap@microsoft.com  provisional  portable None!" Safe #Specification of namespace mapping.schema namespacenamespace 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.hardcoded string fragment\placeholder for the n-th type argument of the type alias, applicable only to generic aliasesMParse 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"]})-./0123  -./0123(c) Microsoft MIT adamsap@microsoft.com  provisional  portable None!"#A 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 U in the specified .0Builds the name to be used when instantiating a UJ. 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 U. 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.DBuilder for nested element types (e.g. list elements) in context of  monad. Used to implement  function of .%Builder for the qualified name for a " in context of  monad. Used to implement  function of .Builder for the name for a " in context of  monad. Used to implement  function of ..Builder for the type alias name in context of  monad. Used to implement  function of .:456789:;<=>?@ABCDEFGHIJK//, 456789:;<=>?@ABCDEFGHIJK667686(c) Microsoft MIT adamsap@microsoft.com  provisional  portable None!"Returns 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 L.,MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop None!"9Protocol 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.qqqNone!"rstuvwxyz{|}~rstuvwxy{|}~rstuvwxyz{|}~None 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_nameE_type.h containing definitions of C++ types representing the schema.$list of optional header files to be #include'ed by the generated code 3 to generate enum definitions into a separate file  base_name_enum.h:optional custom allocator to be used in the generated codeNone!"  None!"9Representation of schema fields in the generated C# types public fieldsauto-properties#auto-properties with private setter#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 fieldsNone!"~Codegen template for generating code containing declarations of of services including interfaces, proxies and services files.(c) Microsoft MIT adamsap@microsoft.com  provisional  portable NoneSafe%% (c) Microsoft MIT adamsap@microsoft.com  provisional  portable Safe!"T +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    %   !"#$%&'()*+,,-./001234567789:;<=>?@ABCDEFGHIJKLMNNOPQRSSTUVVWXYZ[\]]^_`abcdefghijklmnopqrstuvwxyz{|}~                              ! " #$%&$%'$%()*+,$-:./0$%1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B CDEFGHIJKLMNOPQRSTUVWXYZ[\]^__`abcdeffghijkllmnopqrrstuvvwxyzz{| }~ ?C!AB =                   @    i                   #bond-0.6.0.0-FvFx9s3O1EmAbZK38PyrTdLanguage.Bond.UtilLanguage.Bond.Codegen.UtilLanguage.Bond.Syntax.TypesLanguage.Bond.Syntax.UtilLanguage.Bond.Syntax.JSON!Language.Bond.Codegen.TypeMappingLanguage.Bond.Syntax.SchemaDefLanguage.Bond.Codegen.TemplatesLanguage.Bond.Parser Paths_bondLanguage.Bond.Syntax.Internal#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_cs Language.Bond.Codegen.Cs.Comm_csLanguage.Bond.LexersepEndBy sepBeginBysepByoptionalbetweenanglesbracketsbracesparens newlineSep commaLineSep newlineSepEndnewlineBeginSep doubleLineSepdoubleLineSepEnd commonHeader$fToTextInteger$fToTextDouble$fToTextWord16Bond bondImportsbondNamespacesbondDeclarations Namespace nsLanguagensNameLanguageCppCsJavaImport DeclarationStructEnumForwardAliasServicedeclNamespacesdeclAttributesdeclName declParams structBase structFields enumConstants aliasTypeserviceMethodsMethodFunctionEventmethodAttributes methodResult methodName methodInput TypeParam paramNameparamConstraint ConstraintValueConstant constantName constantValueFieldfieldAttributes fieldOrdinal fieldModifier fieldType fieldName fieldDefault AttributeattrName attrValueDefault DefaultBoolDefaultInteger DefaultFloat DefaultString DefaultEnumDefaultNothingTypeBT_Int8BT_Int16BT_Int32BT_Int64BT_UInt8 BT_UInt16 BT_UInt32 BT_UInt64BT_Float BT_DoubleBT_Bool BT_String BT_WString BT_MetaNameBT_MetaFullNameBT_BlobBT_MaybeBT_List BT_Vector BT_NullableBT_SetBT_Map BT_Bonded BT_IntTypeArg BT_TypeParamBT_UserDefinedModifierOptionalRequiredRequiredOptional QualifiedName $fEqModifier$fShowModifier $fEqDefault $fShowDefault $fEqAttribute$fShowAttribute $fEqConstant$fShowConstant$fEqConstraint$fShowConstraint $fEqTypeParam$fShowTypeParam $fEqImport $fShowImport $fEqLanguage$fShowLanguage $fEqNamespace$fShowNamespace$fEqDeclaration$fShowDeclaration $fEqMethod $fShowMethod$fEqType $fShowType $fEqField $fShowField$fEqBond $fShowBondisScalar isUnsignedisSignedisFloat isMetaNameisStringisList isAssociative isContainerisStructisEnum isNullablefmapType foldMapFieldsfoldMapStructFields foldMapType resolveAlias $fToJSONBond$fFromJSONBond$fToJSONNamespace$fFromJSONNamespace$fToJSONConstraint$fFromJSONConstraint $fToJSONField$fFromJSONField$fToJSONDefault$fFromJSONDefault $fToJSONType$fFromJSONType$fFromJSONModifier$fToJSONModifier$fFromJSONAttribute$fToJSONAttribute$fFromJSONConstant$fToJSONConstant$fFromJSONTypeParam$fToJSONTypeParam$fFromJSONDeclaration$fToJSONDeclaration$fFromJSONImport$fToJSONImport$fFromJSONLanguage$fToJSONLanguage$fFromJSONMethod$fToJSONMethodNamespaceMapping fromNamespace toNamespace AliasMapping aliasName aliasTemplateFragment PlaceholderparseAliasMappingparseNamespaceMappingTypeNameBuilder TypeMappinglanguageglobal separatormapType fixSyntaxinstanceMappingelementMappingannotatedMappingMappingContext typeMapping aliasMappingnamespaceMapping namespaces getNamespacegetDeclNamespacegetQualifiedNamegetDeclTypeName getTypeNamegetInstanceTypeNamegetAnnotatedTypeNamecustomAliasMappingidlTypeMappingcppTypeMappingcppCustomAllocTypeMapping csTypeMapping!csCollectionInterfacesTypeMappingelementTypeNamedeclQualifiedTypeName declTypeName aliasTypeNameencodeSchemaDef makeSchemaDef$fToJSONSchemaDef$fToJSONStructDef$fToJSONFieldDef$fToJSONTypeDef$fToJSONMetadata$fToJSONVariantProtocolprotocolReaderprotocolWriter apply_cppapply_henum_h reflection_h types_cpptypes_h FieldMapping PublicFields PropertiesReadOnlyProperties StructMappingClasstypes_cscomm_interface_cs comm_proxy_cscomm_service_csImportResolver parseBondcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebaseGHC.BasemappendmemptyJustindent commaLinenewLine doubleLineGHC.Enumghc-prim GHC.TypesTrueMonoid ShowPretty showPrettytakeName takeNamespaceshowQualifiedNameshowTypeParams metaField isBaseField$fShowPrettyDeclaration$fShowPrettyTypeParam$fShowPrettyConstraintParser whitespace identifier qualifiedNamesymbolequalinteger csCollectionInstancesTypeMappingcsAnnotatedTypeMapping<<>><>><<>pureTextcommaSepTypeNamestypeName localWithinstanceTypeNameannotatedTypeNameresolveNamespacedeclQualifiedNamefindAliasMappingidlTypecppTypecppTypeCustomAlloccomparer allocator pairAllocator cppSyntaxFixcsTypecsInterfaceTypecsTypeAnnotationbytestring-0.10.8.1Data.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 SchemaDefstructstypeIdapplyOverloads openNamespacecloseNamespace structName structParamstemplate attributeInit modifierTag defaultValue enumValueschemaMetadatadefaultedFunctionsdefaultedMoveCtorsrvalueReferencesifndefenumDefinitiondisableCscWarningsdisableReSharperWarningspropertyAttributestypeAttributesgeneratedCodeAttridloptionalTypeAttributesschemaAttributesparamConstraintsgetMessageTypeNamegetMessageProxyInputParamparamOrBondVoid LanguageDefbondIdllexercoloncomma commaSep1decimalkeywordlexemenaturalsemisemiSep whiteSpacenamespaceLexernamespaceIdentifiersemiEndcommaEnd commaEnd1 semiOrCommasemiOrCommaSepsemiOrCommaSep1semiOrCommaEndsemiOrCommaSepEndsemiOrCommaSepEnd1quotequotes stringLiteralunescapedStringLiteralfloat EnvironmentcurrentNamespaces currentParams currentFile resolveImportSymbolssymbolsimportsbondimport_ processImport declaration updateSymbols findSymbol findStruct namespace parametersaliasforwardviewstruct manySortedByfieldvalidDefaultType isInBoundsenum basicType complexTypeuserType userSymboltype_ftypeservicefunctioneventinputpayload checkUserType