h&*$գ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred"1   Safe-Inferredcandid(The Candid field label hashing algorithmcandid(Inversion of the Candid field label hash Safe-Inferred"candid.A type for a Candid field name. Essentially a $ with maybe a textual label attachedcandid Extract the raw field hash valuecandid Create a  from a labelcandid Create a  from the raw hashcandidThe inverse of candid Represent a  (which may be numeric) in contexts where only text is allowed, using the same encoding/decoding algorithm as Motoko.This used in the  instance for    and    Safe-Inferred ")*/15<'candid)A newtype to stand in for the unary tuple  Safe-Inferred"89:%candidThe type of a candid methodGcandid An opaque value of a future typebcandida short-hand for \ K future typesdcandidA reference to a named type!#$"%*)('&+GFEDCBA@?>=<;:9876543210/.-,HIdcba`_^]\[YXWVUTSRQPONMLKJZ  Safe-Inferred )*/1gcandidThis takes a type description and replaces all named types with their definition.This can produce an infinite type! Only use this in sufficiently lazy contexts, or when the type is known to be not recursive. efg Safe-Inferred" bhcandidReturns ? if the first argument is a subtype of the second, or returns  with an explanation if noth Safe-Inferred89: vcandidA candid test file%(no support for type definitions yet)zcandidParses a Candid description (.did) from a string{candid+Parses a Candid textual value from a string|candid9Parses a sequence of Candid textual values from a string}candid,Parses a candid spec test file from a string!"$#ijklmnopqrstuvwxyz{|} Safe-Inferred"  Safe-Inferred/ F~candid,Encodes a Candid value given in the dynamic + form, at inferred type.This may fail if the values have inconsistent types. It does not use the reserved' supertype (unless explicitly told to).Not all possible values are encodable this way. For example, all function references will be encoded at type () - ().candid,Encodes a Candid value given in the dynamic + form, at given type.5This fails if the values do not match the given type.~ Safe-InferredHcandid-Encodes a Candid value given in textual form.This may fail if the textual form cannot be parsed or has inconsistent types. It does not use the reserved' supertype (unless explicitly told to). Safe-InferredcandidDecode binay value into the type description and the untyped value representation. Safe-Inferred"candidThis function implements the V : T ~> V' : T' relation from the Candid spec.Because values in this library are untyped, we have to pass what we know about their type down, so that we can do the subtype check upon a reference. The given type must match the value closely (as it is the case when decoding from the wire) and this function may behave oddly if v and t1 are not related.%Morally, this function looks only at v and t2. It only needs t1( for refences, and hence needs to take t2 apart for the recursive calls. Practically, it's sometimes more concise to look at t2 instead of v.candid `null <: t`? Safe-Inferred/01<Ncandid Type-level (, to be used in method types annotationscandid Type-level (, to be used in method types annotationscandid;The class of Haskell types that can be converted to Candid.You can create intances of this class for your own types, see the tutorial above for examples. The default instance is mostly for internal use.candidThe internal class of Haskell types that canonically map to Candid. You would add instances to the  type class.candidfatalcandidcan be recoveredcandidcan be recoveredcandidcan be recoveredcandidThe class of types that can be used as Candid argument sequences. Essentially all types that are in *, but tuples need to be treated specially.candidEncode based on Haskell typecandid Encode to a  based on Haskell typecandidDecode to Haskell typecandid'Decode (dynamic) values to Haskell typeThis applies some best-effort subtyping/coercion, suitable for liberal parsing of the textual representation, but not the coercion algorithm as specified in the specification, which requires a provided type.candidTurn haskell types into a dynamic Candid value. This may lose type information.candid=Calculate a Candid type description from a Haskell type. The e type is roughly [Type],, with extra bookkeeping for recursive typescandid(NB: This will loop with recursive types!candidMaybe a bit opinionated, but  seems to be the unit of Candid1 Safe-Inferred %&1candidThis quasi-quoter turns a Candid service description into a Haskell type. It assumes a type variable m to be in scope, and uses that as the monad for the service's methods."Recursive types are not supported.candidAs , but takes a filenamecandidThis quasi-quoter turns all type definitions of a Canddi file into Haskell types, as one Row. The service of the candid file is ignored."Recursive types are not supported.9This quasi-quoter works differently depending on context:As a _type_, it expands to a row-types record with one entry per type defined in the Candid file: type MyDefs = [candidDefs|type t = text; ... |] foo :: MyDefs .! "t"As a _declaration_ (i.e. the module top level), it generates one type synonym (type Foo = ...) per definition. This only works if the candid type name is a valid Haskell type name (in particular, upper case). This may improve in the future. /[candidDefs|type Foo = text; ... |] foo :: Foo7You can use `-ddump-splices` to see the generated code.candidAs , but takes a filenamecandid>This quasi-quoter turns works on individual candid types, e.g. type InstallMode = [candidType| variant {install : null; reinstall : null; upgrade : null}; |]candidTurns all candid type definitions into newtypes Used, so far, only in the Candid test suite runnercandid=Inlines all candid type definitions, after checking for loops Safe-Inferred!#"$filjkmnoputsqrvywx}!#"$iljkmnoputsqrvywx}f Safe-Inferred/1!candidA Candid service. The r describes the type of a .candid!A raw service, operating on bytescandidTurns a raw service (function operating on bytes) into a typed Candid service (a record of typed methods). The raw service is typically code that talks over the network.candidTurns a typed candid service into a raw service. Typically used in a framework warpping Candid services.candid5What to do if the raw service returns unparsable datacandid,What to do if the method name does not existcandid3What to do when the caller provides unparsable data Safe-Inferred*/01#YcandidThis newtype encodes a Haskell data type as a variant using generic programming. Best used with  DerivingVia, as shown in the tutorial.candidThis newtype encodes a Haskell record type using generic programming. Best used with  DerivingVia, as shown in the tutorial. Safe-Inferred# !%&'()*+,-./0123456789:;<=>?@ABCDEFGHIZJKLMNOPQRSTUVWXY[\]^_`abcdeghz{|~eg IZJKLMNOPQRSTUVWXY[\]^_`abcd%&'()*H+,-./0123456789:;<=>?@ABCDEFGh~!z{| !"#$%&'()*+,-../0123 4 4 5  6 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 [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v wxyz{|}~                   u      candid-0.4-AUyTsDJWpOSxKmMyQN5oA Codec.CandidCodec.Candid.TestExportsCodec.Candid.TuplesCodec.Candid.DataCodec.Candid.HashCodec.Candid.FieldNameCodec.Candid.ClassCandidData.RowRecVecCodec.Candid.TypesCodec.Candid.TypTableCodec.Candid.SubtypeCodec.Candid.ParseCodec.Candid.InferCodec.Candid.EncodeCodec.Candid.EncodeTextualCodec.Candid.DecodeCodec.Candid.CoerceCodec.Candid.THCodec.Candid.ServiceCodec.Candid.GenericFuncRefservicemethod ServiceRef rawServiceRef Principal rawPrincipalReservedprettyPrincipalparsePrincipal candidHash invertHash FieldName fieldHash labledField hashedFieldunescapeFieldNameescapeFieldNameTuplableasTuple fromTupleAsTupleUnaryunUnary$fAsTuple_aFalse$fAsTuple_aTrue $fEqUnary $fShowUnaryDidFiledefs MethodType methParams methResults methQuery methOnewayValueNumVNatVNat8VNat16VNat32VNat64VIntVInt8VInt16VInt32VInt64VFloat32VFloat64VBoolVTextVNullV ReservedVOptVVecVRecVTupVVariantVFuncVServiceV PrincipalVBlobVAnnVFutureVFieldsTypeNatTNat8TNat16TNat32TNat64TIntTInt8TInt16TInt32TInt64TFloat32TFloat64TBoolTTextTNullT ReservedTEmptyTOptTVecTRecTVariantTFuncTServiceT PrincipalTBlobTFutureTRefTSeqDescunrollTypeTabletieKnot isSubtypeOf TestAssertionCanParse CannotParseParseEq TestInput FromTextual FromBinary CandidTesttestLine testAssertiontestTypetestDescCandidTestFiletestDefs testTestsparseDid parseValue parseValuesparseCandidTestsencodeDynValues encodeTextual decodeVals CandidRowAnnFalseAnnTrueAsCandidtoCandid fromCandid CandidVal CandidArgencode encodeBuilderdecodefromCandidVals toCandidValsseqDesc typeGraphtypeDesccandid candidFile candidDefscandidDefsFile candidTypegenerateCandidDefs candidTypeQ CandidService RawServicetoCandidServicefromCandidService AsVariant unAsVariantAsRecord unAsRecordbaseGHC.WordWord32DidDef DidServiceTypeNameArgstupTbindMethodType prettyFieldsprettyBraceSemi prettyField prettyAnn prettyBlob prettyTexttupVprimTyp prettyDef prettyMethRefunrollTypeTable' buildSeqDescvoidEmptyTypesunderRec Data.EitherRightLeftSubTypeM runSubTypeM isSubtypeOfM parseDidType inferTypesinferTyplubslub encodeValues PreService decodeVal referenceByte decodeBytes decodeTextdecodePrincipal decodeMagic getLEB128IntcheckOvershoot decodeSeq decodeFoldSeqdecodeTypTabledecodeTypTableEntry decodeTypRefdecodeFuncTypRefresolveServiceT decodeFuncAnn isOrdereddecodeTypFieldsdecodeTypFieldcoerce isOptLike coerceSeqDescghc-prim GHC.TypesFalseTrue DecodeError CoerceErrorMissingFieldErrorUnexpectedTagErrorbytestring-0.11.3.1 Data.ByteString.Builder.InternalBuilder $fCandid() Data.FoldablenullCandidMethodsRowCandidMethodType asMethodTypeKnownAnnotationisTruefromMissingFieldfromCandidVal' toCandidVal'asTypeDeserializeError CandidSeqseqValfromValsasTypes isRecoverable recoverWithshowDeserializeError cannotDecode cannotCoerce missingField unexpectedTag toCandidVal fromCandidValfromCandidVal''asType'inBounds fieldsOfRow methodsOfRow inlineDefs(row-types-1.0.1.2-9ZRbLdiEeivBXU10W15EBTData.Row.Records CandidMethodtoMethfromMeth RawMethod