7      !"#$%&'()*+,-./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 Safe!"5 PThe 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 definition'Method of a service.Type parameter of a  >https://microsoft.github.io/bond/manual/compiler.html#genericsgeneric  or type 2Constraint on a ..3*the type parameter allows only value types4Definition of an  constant.8Definition of a  field.@ Ghttps://microsoft.github.io/bond/manual/compiler.html#custom-attributes Attribute* for attaching user defined metadata to a  or a 8DDefault value of a field.Iname of an enum 4J&explicitly specified default value of nothingKType in the Bond type system\*type for fields with the default value of nothingc5an integer argument in an instance of a generic type dtype parameter of a generic  or  declarationeTuser defined type or an instance of a generic type with the specified type argumentsf2Specifies whether a field is required or optional.g9field is optional and may be omitted during serializationh=field is required, deserialization will fail if it is missingibdeserialization will not fail if the field is missing but it can't be omitted during serializationjRepresents fully qualified nameb  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijb  !"#$%&')(*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijr j !"# $ ! !% !&89:;<=>?DEFGHIJfghi4567KLMNOPQRSTUVWXYZ[\]^_`abcde./0123'()*+,-*,-@ABC   !"# $ ! !% !&' ()*+,-*,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij(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 K into another K.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 K.Maps all parts of a K 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.(c) Microsoft MIT adamsap@microsoft.com  provisional  portable None!" Safe!" !"#$%&'()*+"#$%'( !"#$%&'()*+ Safe%,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP/0123456789:;<=>?ABCDEGHIJKNOP%,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP(c) Microsoft MIT adamsap@microsoft.com  provisional  portable Safe!"T+Parses content of a schema definition file..QRSTUVW 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 contentXYZ[)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  8 which represents the parsed abstract syntax tree or  ParserError if parsing failed\]^_`abcdefghijklmnopqrstuvwxyz{|&QRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|(c) Microsoft MIT adamsap@microsoft.com  provisional  portable NonebSeparates 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.Given an intended name and a list of already taken names, returns a unique name. Assumes that it's legal to appen digits to the end of the intended name.}~}~ 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"]})  (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 K in the specified .0Builds the name to be used when instantiating a KJ. 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 K. 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 .://, 666(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 .,None!"  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 proxies and services files for gRPC integration.None!"~Codegen template for generating code containing declarations of of services including interfaces, proxies and services files.None!"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 code3 to generate enum definitions into a separate file  base_name_enum.h:optional custom allocator to be used in the generated codeNone!" Codegen template for generating  base_name\_types.cpp containing definitions of helper functions and schema metadata static variables.None!" Codegen template for generating  base_name6_reflection.h containing schema metadata definitions.None!" 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_nameC_comm.h containing declarations of of service interface and proxy.None!" Codegen template for generating  base_name[_comm.cpp containing definitions of helper functions and schema metadata static variables.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.         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 generated  None!"  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 declarations  (c) Microsoft MIT adamsap@microsoft.com  provisional  portable None           !"#$%%&'())*+,-./00123456789:;<=>?@ABCDEFGGHIJKLLMNOOPQRSTUVVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                 ! " # $ % & ' ( ) *+,-+,.+,/+03123+,4 5 6 7 8 9 : ; < = > ? @ A B ! # " C D E F G H I J K $ L M N O P Q R S T U V W X Y Z [ \ ] ^ _ `abbcdefgghijklmnopqrstuvwxyz{|}~ a  G r N R Hv#bond-0.9.0.0-IVqXQqstzyi2P3eBNtmYC5Language.Bond.UtilLanguage.Bond.Syntax.TypesLanguage.Bond.Syntax.UtilLanguage.Bond.Syntax.JSONLanguage.Bond.ParserLanguage.Bond.Codegen.Util!Language.Bond.Codegen.TypeMappingLanguage.Bond.Syntax.SchemaDefLanguage.Bond.Codegen.Templates Paths_bondLanguage.Bond.Syntax.InternalLanguage.Bond.Lexer#Language.Bond.Codegen.CustomMappingLanguage.Bond.Codegen.Cs.Util!Language.Bond.Codegen.Cs.Types_cs Language.Bond.Codegen.Cs.Grpc_cs Language.Bond.Codegen.Cs.Comm_csLanguage.Bond.Codegen.Cpp.Util!Language.Bond.Codegen.Cpp.Types_h#Language.Bond.Codegen.Cpp.Types_cpp&Language.Bond.Codegen.Cpp.Reflection_h Language.Bond.Codegen.Cpp.Enum_h Language.Bond.Codegen.Cpp.Comm_h"Language.Bond.Codegen.Cpp.Comm_cpp(Language.Bond.Codegen.Cpp.ApplyOverloads#Language.Bond.Codegen.Cpp.Apply_cpp!Language.Bond.Codegen.Cpp.Apply_hsepEndBy sepBeginBysepByoptionalbetweenanglesbracketsbracesparensBond 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$fToJSONMethodImportResolver parseBond newlineSep commaLineSep newlineSepEndnewlineBeginSep doubleLineSepdoubleLineSepEnd commonHeader uniqueName$fToTextInteger$fToTextDouble$fToTextWord16NamespaceMapping fromNamespace toNamespace AliasMapping aliasName aliasTemplateFragment PlaceholderparseAliasMappingparseNamespaceMappingTypeNameBuilder TypeMappinglanguageglobal separatormapType fixSyntaxinstanceMappingelementMappingannotatedMappingMappingContext typeMapping aliasMappingnamespaceMapping namespaces getNamespacegetDeclNamespacegetQualifiedNamegetDeclTypeName getTypeNamegetInstanceTypeNamegetAnnotatedTypeNamecustomAliasMappingidlTypeMappingcppTypeMappingcppCustomAllocTypeMapping csTypeMapping!csCollectionInterfacesTypeMappingelementTypeNamedeclQualifiedTypeName declTypeName aliasTypeNameencodeSchemaDef makeSchemaDef$fToJSONSchemaDef$fToJSONStructDef$fToJSONFieldDef$fToJSONTypeDef$fToJSONMetadata$fToJSONVariant FieldMapping PublicFields PropertiesReadOnlyProperties StructMappingClasstypes_csgrpc_cscomm_interface_cs comm_proxy_cscomm_service_cstypes_h types_cpp reflection_henum_hcomm_hcomm_cppProtocolProtocolReaderProtocolWriter apply_cppapply_hcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebaseGHC.BasemappendmemptyJustGHC.Enumghc-prim GHC.TypesTrueMonoid ShowPretty showPrettytakeName takeNamespaceshowQualifiedNameshowTypeParams metaField isBaseField$fShowPrettyDeclaration$fShowPrettyTypeParam$fShowPrettyConstraint LanguageDefbondIdllexercoloncomma commaSep1decimal identifierintegerkeywordlexemenaturalsemisemiSepsymbol whiteSpacenamespaceLexernamespaceIdentifierequalsemiEndcommaEnd commaEnd1 semiOrCommasemiOrCommaSepsemiOrCommaSep1semiOrCommaEndsemiOrCommaSepEndsemiOrCommaSepEnd1quotequotes stringLiteralunescapedStringLiteralfloatParser EnvironmentcurrentNamespaces currentParams currentFile resolveImportSymbolssymbolsimportsbondimport_ processImport declaration updateSymbols findSymbol findStruct namespace qualifiedName parametersaliasforward attributesviewstructfieldenum basicType complexTypeuserType userSymboltype_ftypeservicefunctioneventinputpayload checkUserTypefindDuplicatesBy manySortedByvalidDefaultType isInBoundsindent commaLinenewLine doubleLine whitespace csCollectionInstancesTypeMappingcsAnnotatedTypeMapping<<>><>><<>pureTextcommaSepTypeNamestypeName localWithinstanceTypeNameannotatedTypeNameresolveNamespacedeclQualifiedNamefindAliasMappingidlTypecppTypecppTypeCustomAlloccomparer allocator pairAllocator cppSyntaxFixcsTypecsInterfaceTypecsTypeAnnotationbytestring-0.10.8.1Data.ByteString.Lazy.Internal ByteStringVariant uint_value int_value double_value string_value wstring_valuenothingMetadatanamequalified_namemodifier default_valueTypeDefid struct_defelementkey bonded_typeFieldDef _metadata_id_type StructDefmetadatabase_deffields SchemaDefstructstypeIddisableCscWarningsdisableReSharperWarningspropertyAttributestypeAttributesgeneratedCodeAttridloptionalTypeAttributesschemaAttributesparamConstraints defaultValuegetMessageTypeNamegetMessageProxyInputParamparamOrBondVoid openNamespacecloseNamespace className classParamsqualifiedClassNametemplate attributeInit modifierTag enumValueschemaMetadatadefaultedFunctionsdefaultedMoveCtorsrvalueReferencesifndefenumDefinitionapplyOverloads