l      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk ,Provides an efficient buffering abstraction.None4l)A buffer into which bytes can be written. Invariants: ,size >= containedBytes >= consumedBytes >= 0The range from ptr to ptr m size will be allocatedThe range from ptr to ptr m containedBytes6 will contain bytes previously copied to the bufferThe buffer contains containedBytes - consumedBytes` bytes of data that have been copied to it, but not yet read. They are in the range from ptr m consumedBytes to ptr m containedBytes.nThe amount of memory allocated.oThe number of bytes that the  currently holds.p4The number of bytes that have already been consumed.q>This points to the beginning of the memory allocated for the Number of available bytes in a F (that is, bytes that have been copied to, but not yet read from the .rNThe number of bytes that can be appended to the buffer, without resetting it.WAllocates a new ByteBuffer with a given buffer size filling from the given FillBuffer. Note that s created with * have to be deallocated explicitly using /. For automatic deallocation, consider using  instead.Free a byte buffer.SPerform some action with a bytebuffer, with automatic allocation and deallocation.sReset a V, i.e. copy all the bytes that have not yet been consumed to the front of the buffer.t!Make sure the buffer is at least minSize bytes long.cIn order to avoid havong to enlarge the buffer too often, we double its size until it is at least minSize bytes long.Copy the contents of a u to a .If necessary, the 8 is enlarged and/or already consumed bytes are dropped.vCopy the contents of a u to a ". No bounds checks are performed.Try to get a pointer to n bytes from the .TNote that the pointer should be used before any other actions are performed on the . It points to some address within the buffer, so operations such as enlarging the buffer or feeding it new data will change the data the pointer points to. This is why this function is called unsafe. As , but instead of returning a w into the contents of the , it returns a u containing the next n7 bytes in the buffer. This involves allocating a new u and copying the n bytes to it.lxnopqr Size of buffer to allocate. If y, use the default value of 4MBThe byte buffer.Initial length of the . If y , use the default value of 4MB.stminSizevnWill be  Left missing when there are only  n-missing bytes left in the .   lxnopqrstv None(+-13457<>FIKLNY Info about a type's serialized length. Either the length is known independently of the value, or the length depends on the value. Exception thrown while running J. Note that other types of exceptions can also be thrown. Invocations of z in the + monad causes this exception to be thrown. 2 is thrown when the data being decoded is invalid.Run the  action, with a w6 to the end of the buffer where data is poked, and a w- to the current position. The result is the w, along with a return value.Exception thrown while running L. Note that other types of exceptions could also be thrown. Invocations of z in the + monad causes this exception to be thrown.as are not expected to occur in ordinary circumstances, and usually indicate a programming error.{Run the  action, with the w5 to the buffer where data is poked, and the current |;. The result is the new offset, along with a return value.|"How far into the given Ptr to look} Total byte size of the given PtrThe Z typeclass provides efficient serialization and deserialization to raw pointer addresses.The  and & methods should be defined such that  decodeEx (encode x) == x . Yields the  T of the buffer, in bytes, required to store the encoded representation of the type.INote that the correctness of this function is crucial for the safety of U, as it does not do any bounds checking. It is the responsibility of the invoker of  (W and similar functions) to ensure that there's enough space in the output buffer. If n writes beyond, then arbitrary memory can be overwritten, causing undefined behavior and segmentation faults.~Serializes a value to bytes. It is the responsibility of the caller to ensure that at least the number of bytes required by - are available. These details are handled by  and similar utilities.mSerialized a value from bytes, throwing exceptions if it encounters invalid data or runs out of input bytes.Serializes a value to a u-. In order to do this, it first allocates a u of the correct size (based on ), and then uses  to fill it.Decodes a value from a u{. Returns an exception if there's an error while decoding, or if decoding undershoots / overshoots the end of the buffer.Decodes a value from a u1, potentially throwing exceptions, and taking a 6 to run. It is an exception to not consume all input.Decodes a value from a uP, potentially throwing exceptions. It is an exception to not consume all input. Decodes a value from a u1, potentially throwing exceptions, and taking a 6 to run. It is an exception to not consume all input.! Similar to  ?, but it allows there to be more of the buffer remaining. The |I of the buffer contents immediately after the decoded value is returned."Decodes a value from a uP, potentially throwing exceptions. It is an exception to not consume all input.#Decodes a value from a u1, potentially throwing exceptions, and taking a 6 to run. It is an exception to not consume all input.$ Similar to !, but runs in the ~ monad.A ( implementation based on an instance of  and .A ( implementation based on an instance of . Use this if the type is not .A ( implementation based on an instance of .A ( implementation based on an instance of  and .A ( implementation based on an instance of . Use this if the type is not .j {|} !"#$%&'()*+,-.G {|} !"#$%&'()*+,-.U  {|} !"#$%&'()*+,-.None/Test a  instance using  smallcheck and .1HCheck if a given value succeeds in decoding its encoded representation./01/01/10/01None <@UGet a map from the  type of instances to .23456789234567895346728923456789None (+-03457<>ILNY ? Implement  for an  of  instances.eNote that many monomorphic containers have more efficient implementations (for example, via memcpy).@ Implement  for an  of  instances.eNote that many monomorphic containers have more efficient implementations (for example, via memcpy).A Implement  for an  of  instances.eNote that many monomorphic containers have more efficient implementations (for example, via memcpy).B Implement  for an  of  instances.C Implement  for an  of  instances.D Implement  for an  of  instances.E Implement  for an  of where both  and  are  instances.F Implement  for an  of where both  and  are  instances.G Implement  for an  of where both  and  are  instances.Implementation of peek for mutable sequences. The user provides a function for initializing the sequence and a function for mutating an element at a particular index.HSkip n bytes forward.IAIsolate the input to n bytes, skipping n bytes forward. Fails if m1 advances the offset beyond the isolated region.::;<=>?@ABCDEFGHIJK7  !"#$%&'()*+,-.:;<=>?@ABCDEFGHIJK8 !"#$% &' ()*+,-.?@ABCDEFGHI:;<=>JK7:;<=>?@ABCDEFGHIJKNone  !"#$& !"#$  &!A thin streaming layer that uses  for serialisation.None4U LUThe result of peeking at the next message can either be a successfully deserialised O, or a request for more input.#Type used to store the length of a O.OIf a is an instance of ,  Message a< can be serialised and deserialised in a streaming fashion.R Encode a O to a u. Decode a O of known size from a . Decode a  from a .S Decode some O from a 2, by first reading its size, and then the actual O.T Decode a O from a ( and an action that can get additional u&s to refill the buffer when necessary.8The only conditions under which this function will give y, is when the , contains zero bytes, and refilling yields yH. If there is some data available, but not enough to decode the whole O, a   will be thrown.Decode a value, given a w; and the number of bytes that make up the encoded message.UConduit for encoding Os to us.VConduit for decoding Os from us.LMNOPQRSTUVInitial length of the " used for buffering the incoming us. If y , use the default value of 4MB. LMNOPQRSTUV OPQRLMNSTUVLMNOPQRSTUVNone (*+0CN`At compiletime, this yields a hash of the specified datatypes. Not only does this cover the datatypes themselves, but also all transitive dependencies..The resulting expression is a literal of type .aBAt compiletime, this yields a cryptographic hash of the specified C, including the definition of things it references (transitively)..The resulting expression is a literal of type .WXYZ[\]^_`abcdefghijkWXYZ[\]^_`abcdefg\]^kjYZ[ih_`abcdWXefgWXYZ[\]^_`abcdefghijk NoneWXY\]^ef\]^YWXef     !"#$%&'()*+,-./0123456789:;<=>?@ABCDDEFGHIJKLMNOPQRSTUVVWXYZ[\]^__`aabcdefghijklmnopqrs!tuvwxyz{|}qr~pqqqq n    store_Cb7vFgXfZIG2YwSnkp7HEFSystem.IO.ByteBufferData.Store.Internal Data.Store.THData.Store.TH.InternalData.Store.StreamingData.Store.TypeHash.InternalData.Store.Impl Data.StoreData.Store.TypeHash ByteBuffer totalSizeisEmptyavailableBytesnewfreewithcopyByteString unsafeConsumeconsumeSizeVarSize ConstSize PeekExceptionpeekExBytesFromEnd peekExMessagePeekrunPeek PokeExceptionpokeExByteIndex pokeExMessagePokeStoresizepokepeekencodedecode decodeWithdecodeEx decodeExWithdecodeExPortionWithdecodeIO decodeIOWithdecodeIOPortionWith pokeException peekException tooManyBytesgetSize getSizeWith contramapSize combineSize combineSize' scaleSizeaddSizesmallcheckManyStoreassertRoundtripcheckRoundtrip deriveStorederiveTupleStoreInstancederiveGenericInstancederiveManyStoreFromStorablederiveManyStorePrimVectorderiveManyStoreUnboxVectorgetAllInstanceTypes1 isMonoType IsStaticSize toStaticSize StaticSize unStaticSize sizeSequence pokeSequence peekSequencesizeSetpokeSetpeekSetsizeMappokeMappeekMapskipisolatetoStaticSizeExliftStaticSize PeekMessageDone NeedMoreInputMessage fromMessage encodeMessage peekMessage decodeMessage conduitEncode conduitDecode HasTypeHashtypeHashTypeHash unTypeHashTaggedunTaggedreifyManyTyDeclstypeHashForNames hashOfTypegetTypeInfosRecursively getConNames getVarNames mkHasTypeHashmkManyHasTypeHashcombineTypeHashes$fLiftTypeHash$fNFDataTypeHash $fStoreTagged$fNFDataTaggedBBRefbaseGHC.PtrplusPtr containedconsumedptr freeCapacityresetenlargeByteBufferbytes_6VWy06pWzJq9evDvK2d4w6Data.ByteString.Internal ByteStringunsafeCopyByteStringPtrGHC.BaseNothingfailrunPokeOffsetTotalghc-prim GHC.TypesIO sizeStorableForeign.StorableStorableData.Typeable.InternalTypeablesizeStorableTy pokeStorable peekStorablepeekStorableTy GStorePeekSumgpeekSum GStorePokeSumgpokeSum GStoreSizeSumgsizeSum GStorePeekgpeek GStorePokegpoke GStoreSizegsizeSumArity checkOffset genericSize genericPoke genericPeekpokeFromForeignPtrpeekToPlainForeignPtr pokeFromPtrpokeFromByteArraypeekToByteArraycopyByteArrayToAddrcopyAddrToByteArray$fExceptionPeekException $fMonadIOPeek$fPrimMonadPeek$fMonadFailPeek $fMonadPeek$fApplicativePeek$fExceptionPokeException $fMonadIOPoke$fMonadFailPoke $fMonadPoke$fApplicativePoke$fGStorePeekSumnM1$fGStorePokeSumnM1$fGStoreSizeSumnM1$fGStorePeekSumn:+:$fGStorePokeSumn:+:$fGStoreSizeSumn:+:$fGStorePeek:+:$fGStorePoke:+:$fGStoreSize:+:$fGStorePeek:*:$fGStorePoke:*:$fGStoreSize:*:$fGStorePeekV1$fGStorePokeV1$fGStoreSizeV1$fGStorePeekU1$fGStorePokeU1$fGStoreSizeU1$fGStorePeekK1$fGStorePokeK1$fGStoreSizeK1$fGStorePeekM1$fGStorePokeM1$fGStoreSizeM1hspec_7V7Lj80zZjAGvJGtpazzP2Test.Hspec.Core.RunnerhspecsmallcheckMany verboseTrace instancesMap getTyHeadthrei_B6kIZfAAOmkB0wayMLb50P&Language.Haskell.TH.ReifyMany.InternalTypeclassInstanceprimSizeOfExpr getUnboxInfo postprocessmakeStoreInstancegetAllInstanceTypesisVarTinstanceArgTypes$fDeriverStoremonot_1RBwT8dpHHa7RmgRwyDpeYData.Sequences IsSequenceData.ContainersIsSetIsMap ContainerKeyMapValuepeekMutableSequence $fStoreEither $fStoreMaybe $fStoreLast $fStoreFirst$fStoreProduct $fStoreSum $fStoreDual $fStore()$fStoreUTCTime$fStoreDiffTime $fStoreDay $fStoreRatio $fStoreFixed$fStoreInteger$fStoreHashSet$fStoreHashMap $fStoreMap $fStoreIntMap $fStoreIntSet $fStoreSet $fStoreSeq$fStoreNonEmpty $fStore[]$fStoreStaticSize$fIsStaticSizenByteString$fNFDataStaticSize $fStoreText$fStoreByteString$fStoreShortByteString$fStoreByteString0 $fStoreVector$fStoreVector0 $fStoreBool$fStore(,,,,,,)$fStoreVector1$fStoreVector22$fStorePkgName $fStoreRoleSizeTag peekSized peekSizeTag decodeFromPtr tagLength decodeSizeTag decodeSizedInttemplate-haskellLanguage.Haskell.TH.SyntaxType