kQ_K      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ Safe-Inferred*/None (+-./24=BKLFixed integers are stored in little-endian form without additional encoding.0Signed integers are stored in a zz-encoded form.)A list that is stored in a packed format.A K L2 used to select packed sequence encoding/decoding.   fields use M and N% when encoding and decoding messages.Packed values.Lists of values.%Required fields. Parsing will return  if a # value is not found while decoding.7Optional fields. Values that are not found will return O.iFunctions for wrapping and unwrapping record fields. When applied they will have types similar to these:  ::  '1' (& ) ->   ::  ->  '1' (& )  ::  '2' (&   ) -> P     :: P    ->  '2' (&   )  ::  '3' (& Q) -> [Q]  :: [Q] ->  '3' (& Q)  ::  '4' (&   ) -> [  ]  :: [  ] ->  '4' (&   ) Extract a value from it's  representation.Wrap it back up again.4An isomorphism lens compatible with the lens package4To provide consistent instances for serialization a K L is needed to make  fields have the same shape as ,  and . This is the   L with a R instance.pFields are merely a way to hold a field tag along with its type, this shouldn't normally be referenced directly.CThis provides better error messages than older versions which used [ is a newtype wrapped used to break overlapping instances for encoding and decoding values  [ is a newtype wrapped used to break overlapping instances for encoding and decoding values##[ is a newtype wrapped used to break overlapping instances for encoding and decoding values&&G selects the normal/typical way for encoding scalar (primitive) values.SIso:   ( n (  a)) = [a] TIso:   ( n (& a)) = [a] UIso:   ( n (  a)) = [a] VIso:   ( n (& a)) = [a] WIso:   ( n (  a)) = P a XIso:   ( n (& a)) = P a YIso:   ( n (  a)) = a ZIso:   ( n (& a)) = a 5  !"#$%&'([\]^STUVWXYZ_(  !"#$%&'(   !"#$%&'([\]^STUVWXYZ_None *+234BM -5A representation of the wire format as described in Fhttps://developers.google.com/protocol-buffers/docs/encoding#structure.For: fixed32, sfixed32, float/For: groups (deprecated)0For: groups (deprecated)1=For: string, bytes, embedded messages, packed repeated fields2For: fixed64, sfixed64, double3=For: int32, int64, uint32, uint64, sint32, sint64, bool, enum4Field identifiers9This 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).:AThis should be used on unsigned Integral types only (not checked)`Empty lists are not written outa)*+,-./01234567ab89:;c`<=>?defghijklmnopqrstuvwxyz{|}~ )*+,-./0123456789:;<=>?Y)*+,-3210/.4567ab89:;c`<=>?defghijklmnopqrstuvwxyz{|}~None 1234=JKMB"Encode a Protocol Buffers message.CgEncode a Protocol Buffers message prefixed with a varint encoded 32-bit integer describing it's length.Untyped message encoding @ABC@ABC @ABCNone 1234=JKMF"Decode a Protocol Buffers message.GgDecode a Protocol Buffers message prefixed with a varint encoded 32-bit integer describing it's length.foldMapM implemented in a way that defers using (mempty :: b) unless the Foldable is empty, this allows the gross hack of pretending Always is a Monoid while strictly evaluating the accumulatorUntyped message decoding,  E =  DEFGDEFGDEFGNone -./234=BJKHrThe 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 (, R ) instance @ Inner instance D/ Inner data Outer = Outer { outerField ::  '1' ( Inner) } deriving (, R ) instance @ Outer instance D Outer It's worth noting that  H a  is a  and  instance. The J behavior models that of the Protocol Buffers documentation, effectively . 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 H types: data Inner = Inner{inner ::  '2' (&  )} deriving (, R ) instance @ Inner instance D& Inner data Outer a = Outer{outer ::  '3' (H a)} deriving (, R ) instance @ a => @ (Outer a) instance D a => D (Outer a) This fails because D needs to know that the message can be merged. The resulting error implies that you may want to add a constraint to the internal  class: 4/tmp/tst.hs:18:10: Could not deduce (protobuf-0.1: (. a)) arising from a use of `protobuf-0.1: " .$gdmdecode' from the context (D a) bound by the instance declaration at /tmp/tst.hs:18:10-39 Possible fix: add an instance declaration for (protobuf-0.1: (, a)) In the expression: (protobuf-0.1:".$gdmdecode) In an equation for E: decode = (protobuf-0.1:E .$gdmdecode) In the instance declaration for `'Decode' (Outer a)' The correct fix is to add the  constraint for the message:  - instance (@ a) => D (Outer a) + instance ( (H a), D a) => D (Outer a) Iso:   ( n (H a)) = [a] Iso:   ( n (H a)) = P a Iso:   ( n (H a)) = a HIJHIJHIJNone5  !"#$%&'()*+,-./0123456789:;<=>?HIJ54-3210/.;7+,)*<=>?5869:&'( #$% !" HIJNone &@ABCDEFGH@ABCDEFG& H !!"##$%&'()*+,--.//01&23'456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\[]^_^`abcdefghijklmnopqrstuvwxyz{|}~Yabfghyprotobuf-0.2.0.3Data.ProtocolBuffers.OrphansData.ProtocolBuffersData.ProtocolBuffers.InternalData.ProtocolBuffers.TypesControl.Alternativeempty Data.TextTextData.IntInt32 Data.WordWord64Data.Functor.IdentityIdentity Data.TaggedTaggedData.ProtocolBuffers.WireData.ProtocolBuffers.EncodeData.ProtocolBuffers.DecodeData.ProtocolBuffers.MessageRequiredValueInt64MessageDecodebase Data.FoldableFoldableFixedSigned PackedList unPackedList PackedFieldrunPackedField EnumerationrunEnumerationPackedRepeatedOptionalHasField FieldTypegetFieldputFieldfieldAlways runAlwaysFieldrunField RepeatedField runRepeated OptionalField runOptional RequiredField runRequiredrunValue DecodeWire decodeWire EncodeWire encodeWire WireField Fixed32FieldEndField StartFieldDelimitedField Fixed64Field VarintFieldTaggetVarintPrefixedBSputVarintPrefixedBS getWireField getVarInt putVarSInt putVarUInt wireFieldTag zzEncode32 zzEncode64 zzDecode32 zzDecode64Encodeencode encodeMessageencodeLengthPrefixedMessagedecode decodeMessagedecodeLengthPrefixedMessage runMessageData.Traversable TraversableGHC.BaseFunctorGHC.EnumfromEnumtoEnum Data.MaybeNothingMaybeghc-prim GHC.TypesDoubleGHC.ShowShow$fHasFieldField$fHasFieldField0$fHasFieldField1$fHasFieldField2$fHasFieldField3$fHasFieldField4$fHasFieldField5$fHasFieldField6TFCo:R:RequirednEnumerationTFCo:R:RequirednValueTFCo:R:OptionalnEnumerationTFCo:R:OptionalnValue$fMonoidAlwaysencodePackedList putWireField putWireTagdecodePackedList$fDecodeWireAlways$fDecodeWireMaybe $fEncodeWiref$fDecodeWirePackedList$fEncodeWirePackedList$fDecodeWirePackedList0$fEncodeWirePackedList0$fDecodeWirePackedList1$fEncodeWirePackedList1$fDecodeWirePackedList2$fEncodeWirePackedList2$fDecodeWirePackedList3$fEncodeWirePackedList3$fDecodeWirePackedList4$fEncodeWirePackedList4$fDecodeWirePackedList5$fEncodeWirePackedList5$fDecodeWirePackedList6$fEncodeWirePackedList6$fDecodeWirePackedList7$fEncodeWirePackedList7$fDecodeWirePackedList8$fEncodeWirePackedList8$fDecodeWirePackedList9$fEncodeWirePackedList9$fDecodeWirePackedList10$fEncodeWirePackedList10$fDecodeWirePackedList11$fEncodeWirePackedList11$fDecodeWirePackedList12$fEncodeWirePackedList12$fDecodeWireText$fEncodeWireText$fDecodeWire[]$fEncodeWire[]$fDecodeWireByteString$fEncodeWireByteString$fDecodeWireDouble$fEncodeWireDouble$fDecodeWireFloat$fEncodeWireFloat$fDecodeWireBool$fEncodeWireBool$fDecodeWireFixed$fEncodeWireFixed$fDecodeWireFixed0$fEncodeWireFixed0$fDecodeWireFixed1$fEncodeWireFixed1$fDecodeWireFixed2$fEncodeWireFixed2$fDecodeWireSigned$fEncodeWireSigned$fDecodeWireSigned0$fEncodeWireSigned0$fDecodeWireWord64$fEncodeWireWord64$fDecodeWireWord32$fEncodeWireWord32$fDecodeWireInt64$fEncodeWireInt64$fDecodeWireInt32$fEncodeWireInt32$fDecodeWireMaybe0$fEncodeWireMaybe$fDecodeWireValue$fEncodeWireValue$fDecodeWireWireField$fEncodeWireWireField$fEncodeWire[]0$fEncodeHashMapGEncodegencode $fGEncodeU1 $fGEncodeK1 $fGEncode:+: $fGEncode:*: $fGEncodeM1foldMapM$fDecodeHashMapidGDecodegdecode fieldDecode $fGDecodeU1 $fGDecodeK1 $fGDecodeK10 $fGDecodeK11 $fGDecodeK12 $fGDecodeK13 $fGDecodeK14 $fGDecode:+: $fGDecode:*: $fGDecodeM1 GHC.GenericsGeneric Data.MonoidMonoiddeepseq-1.3.0.2Control.DeepSeqNFDataLastFloatGMessageMonoidRepGMessageNFDatagrnfgmemptygmappend$fDecodeWireMessageTFCo:R:RequirednMessageTFCo:R:OptionalnMessage$fGMessageNFDataU1$fGMessageNFDataK1$fGMessageNFData:+:$fGMessageNFData:*:$fGMessageNFDataM1$fNFDataMessage$fGMessageMonoidU1$fGMessageMonoidK1$fGMessageMonoid:+:$fGMessageMonoid:*:$fGMessageMonoidM1$fMonoidMessage