h$       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]  Safe-Inferred   Safe-InferredNone /3567> protobufFixed integers are stored in little-endian form without additional encoding.protobuf0Signed integers are stored in a zz-encoded form.protobuf)A list that is stored in a packed format.protobufA ^ _2 used to select packed sequence encoding/decoding.protobuf fields use ` and a% when encoding and decoding messages.protobufPacked values.protobufLists of values. protobuf%Required fields. Parsing will return  if a  # value is not found while decoding.!protobuf7Optional fields. Values that are not found will return b."protobufFunctions for wrapping and unwrapping record fields. When applied they will have types similar to these: $ ::   '1' (6  ) ->   % ::   ->   '1' (6  ) $ :: ! '2' (6   ) -> c    % :: c    -> ! '2' (6   ) $ ::  '3' (6 d) -> [d] % :: [d] ->  '3' (6 d) $ ::  '4' (6   ) -> [  ] % :: [  ] ->  '4' (6   ) $protobufExtract a value from it's * representation.%protobufWrap it back up again.&protobuf4An isomorphism lens compatible with the lens package'protobuf4To provide consistent instances for serialization a ^ _ is needed to make   fields have the same shape as !,  and . This is the  _ with a e instance.*protobufFields are merely a way to hold a field tag along with its type, this shouldn't normally be referenced directly.This provides better error messages than older versions which used -protobuf- is a newtype wrapped used to break overlapping instances for encoding and decoding values0protobuf0 is a newtype wrapped used to break overlapping instances for encoding and decoding values3protobuf3 is a newtype wrapped used to break overlapping instances for encoding and decoding values6protobuf6 selects the normal/typical way for encoding scalar (primitive) values.fprotobufIso:  # ( n (6 a)) = [a] gprotobufIso:  # (! n (6 a)) = c a hprotobufIso:  # (  n (6 a)) = a iprotobufIso:  # ( n ( a)) = [a] jprotobufIso:  # (! n ( a)) = c a kprotobufIso:  # (  n ( a)) = a lprotobufIso:  # ( n ( a)) = [a] mprotobufIso:  # ( n (6 a)) = [a] ( !"#$%&'()*+,-./012345678None 23>?C =protobuf5A representation of the wire format as described in https://developers.google.com/protocol-buffers/docs/encoding#structure>protobuf=For: int32, int64, uint32, uint64, sint32, sint64, bool, enum?protobufFor: fixed64, sfixed64, double@protobuf=For: string, bytes, embedded messages, packed repeated fieldsAprotobufFor: groups (deprecated)BprotobufFor: groups (deprecated)CprotobufFor: fixed32, sfixed32, floatDprotobufField identifiersIprotobufThis can be used on any Integral type and is needed for signed types; unsigned can use putVarUInt below. This has been changed to handle only up to 64 bit integral values (to match documentation).JprotobufThis should be used on unsigned Integral types only (not checked)9:;<=>?@ABCDEFGHIJKLMNONone 9>?WSprotobuf"Encode a Protocol Buffers message.TprotobufEncode a Protocol Buffers message prefixed with a varint encoded 32-bit integer describing its length.nprotobufUntyped message encodingPQRSTNone 9>?pXprotobuf"Decode a Protocol Buffers message.YprotobufDecode a Protocol Buffers message prefixed with a varint encoded 32-bit integer describing its length.oprotobufUntyped message decoding,  W = p UqVWXYrNone 567>?'[protobufThe way to embed a message within another message. These embedded messages are stored as length-delimited fields. For example: &data Inner = Inner { innerField ::  '1' (  ) } deriving (s, e ) instance Q Inner instance V/ Inner data Outer = Outer { outerField ::  '1' ( Inner) } deriving (s, e ) instance Q Outer instance V Outer It's worth noting that  [ a  is a t and u instance. The t behavior models that of the Protocol Buffers documentation, effectively v. It's done with a fairly big hammer and it isn't possible to override this behavior. This can cause some less-obvious compile errors for paramterized [ types: data Inner = Inner{inner ::   '2' (6 w )} deriving (s, e ) instance Q Inner instance V& Inner data Outer a = Outer{outer ::   '3' ([ a)} deriving (s, e ) instance Q a => Q (Outer a) instance V a => V (Outer a) This fails because V needs to know that the message can be merged. The resulting error implies that you may want to add a constraint to the internal Z class: 4/tmp/tst.hs:18:10: Could not deduce (protobuf-0.1:Z (x. a)) arising from a use of `protobuf-0.1: " .$gdmdecode' from the context (V a) bound by the instance declaration at /tmp/tst.hs:18:10-39 Possible fix: add an instance declaration for (protobuf-0.1:Z (x, a)) In the expression: (protobuf-0.1:".$gdmdecode) In an equation for W: decode = (protobuf-0.1:1 .$gdmdecode) In the instance declaration for `V (Outer a)' The correct fix is to add the t constraint for the message:  - instance (Q a) => V (Outer a) + instance (t ([ a), V a) => V (Outer a) yprotobufIso:  # ( n ([ a)) = [a] zprotobufIso:  # (! n ([ a)) = c a {protobufIso:  # (  n ([ a)) = a Z[\]NoneI8'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPUZ[\]8D=>?@ABCKG;<9:LMNOEHFIJ*+,678'()345012-./[\]UPZNone !"#$%&*6QRSTVWXY[QRSTVWXY !"#$%&*6[ !"#$%&'()**++,,-../00123456789::;<<=>3?@4ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghigjkglmglngopgoqrstguvwxyz{|}~gjggjgrsgwxy'protobuf-0.2.1.4-3LEo8rFXeWfDSZnN230D7LData.Binary.Builder.SizedData.ProtocolBuffersData.ProtocolBuffers.InternalData.ProtocolBuffers.OrphansData.ProtocolBuffers.TypesControl.Alternativeempty Data.TextTextData.IntInt32 Data.WordWord64Data.Functor.IdentityIdentity Data.TaggedTaggedData.ProtocolBuffers.WireData.ProtocolBuffers.EncodeData.ProtocolBuffers.DecodeData.ProtocolBuffers.MessageRequiredValueInt64MessageDecodeBuildertoLazyByteStringsize singletonappendfromByteStringfromLazyByteString putWord16be putWord32be putWord64be putWord16le putWord32le putWord64le$fMonoidBuilder$fSemigroupBuilderFixedSigned PackedList unPackedList PackedFieldrunPackedField EnumerationrunEnumerationPackedRepeatedOptionalHasField FieldTypegetFieldputFieldfieldAlways runAlwaysFieldrunField RepeatedField runRepeated OptionalField runOptional RequiredField runRequiredrunValue DecodeWire decodeWire EncodeWire encodeWire WireField VarintField Fixed64FieldDelimitedField StartFieldEndField Fixed32FieldTaggetVarintPrefixedBSputVarintPrefixedBS getWireField getVarInt putVarSInt putVarUInt wireFieldTag zzEncode32 zzEncode64 zzDecode32 zzDecode64GEncodeEncodeencode encodeMessageencodeLengthPrefixedMessageGDecodedecode decodeMessagedecodeLengthPrefixedMessageGMessageMonoid runMessagebaseData.Traversable TraversableGHC.BaseFunctorGHC.EnumfromEnumtoEnum GHC.MaybeNothingMaybeghc-prim GHC.TypesDoubleGHC.ShowShow$fHasFieldField$fHasFieldField0$fHasFieldField1$fHasFieldField2$fHasFieldField3$fHasFieldField4$fHasFieldField5$fHasFieldField6$fEncodeHashMap$fDecodeHashMapidgdecode fieldDecode GHC.GenericsGenericMonoiddeepseq-1.4.4.0Control.DeepSeqNFData Data.MonoidLastFloatRep