k`QN      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMSafe*/None (+-./35>CLLFixed 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 N O2 used to select packed sequence encoding/decoding.   fields use P and Q% 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 R.iFunctions for wrapping and unwrapping record fields. When applied they will have types similar to these:  ::  '1' (& ) ->   ::  ->  '1' (& )  ::  '2' (&   ) -> S     :: S    ->  '2' (&   )  ::  '3' (& T) -> [T]  :: [T] ->  '3' (& T)  ::  '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 N O is needed to make  fields have the same shape as ,  and . This is the   O with a U 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.VIso:   ( n (  a)) = [a] WIso:   ( n (& a)) = [a] XIso:   ( n (  a)) = [a] YIso:   ( n (& a)) = [a] ZIso:   ( n (  a)) = S a [Iso:   ( n (& a)) = S a \Iso:   ( n (  a)) = a ]Iso:   ( n (& a)) = a 5  !"#$%&'(^_`aVWXYZ[\]b(  !"#$%&'(   !"#$%&'(^_`aVWXYZ[\]bNone *+345CN -5A representation of the wire format as described in Fhttps://developers.google.com/protocol-buffers/docs/encoding#structure.=For: int32, int64, uint32, uint64, sint32, sint64, bool, enum/For: fixed64, sfixed64, double0=For: string, bytes, embedded messages, packed repeated fields1For: groups (deprecated)2For: groups (deprecated)3For: fixed32, sfixed32, float4Field 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)cEmpty lists are not written outa)*+,-./01234567de89:;fc<=>?ghijklmnopqrstuvwxyz{|}~ )*+,-./0123456789:;<=>?Y)*+,-./01234567de89:;fc<=>?ghijklmnopqrstuvwxyz{|}~None 1345>KLNC"Encode a Protocol Buffers message.DgEncode a Protocol Buffers message prefixed with a varint encoded 32-bit integer describing it's length.Untyped message encoding @ABCD@ABCD @ABCDNone 1345>KLNH"Decode a Protocol Buffers message.IgDecode 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,  G =  EFGHIEFGHIEFGHINone -./345>CKLKrThe 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 (, U ) instance A Inner instance F/ Inner data Outer = Outer { outerField ::  '1' ( Inner) } deriving (, U ) instance A Outer instance F Outer It's worth noting that  K 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 K types: data Inner = Inner{inner ::  '2' (&  )} deriving (, U ) instance A Inner instance F& Inner data Outer a = Outer{outer ::  '3' (K a)} deriving (, U ) instance A a => A (Outer a) instance F a => F (Outer a) This fails because F needs to know that the message can be merged. The resulting error implies that you may want to add a constraint to the internal J class: 4/tmp/tst.hs:18:10: Could not deduce (protobuf-0.1:J (. a)) arising from a use of `protobuf-0.1: " .$gdmdecode' from the context (F a) bound by the instance declaration at /tmp/tst.hs:18:10-39 Possible fix: add an instance declaration for (protobuf-0.1:J (, a)) In the expression: (protobuf-0.1:".$gdmdecode) In an equation for G: decode = (protobuf-0.1:1 .$gdmdecode) In the instance declaration for `F (Outer a)' The correct fix is to add the  constraint for the message:  - instance (A a) => F (Outer a) + instance ( (K a), F a) => F (Outer a) Iso:   ( n (K a)) = [a] Iso:   ( n (K a)) = S a Iso:   ( n (K a)) = a JKLMJKLMJKLMNone8  !"#$%&'()*+,-./0123456789:;<=>?@EJKLM84-./0123;7+,)*<=>?5869:&'( #$% !" KLME@JNone &ABCDFGHIKABCDFGHI& K !!"##$%&'()*+,--.//01&23'456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_^`\a\bcdefghijklmnopqrstuvwxyz{|}~\\cdhij{proto_59ZaIOJK4Q5LxPhgPmLKVmData.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 VarintField Fixed64FieldDelimitedField StartFieldEndField Fixed32FieldTaggetVarintPrefixedBSputVarintPrefixedBS getWireField getVarInt putVarSInt putVarUInt wireFieldTag zzEncode32 zzEncode64 zzDecode32 zzDecode64GEncodeEncodeencode encodeMessageencodeLengthPrefixedMessageGDecodedecode decodeMessagedecodeLengthPrefixedMessageGMessageMonoid runMessageData.Traversable TraversableGHC.BaseFunctorGHC.EnumfromEnumtoEnumNothingMaybeghc-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$fEncodeHashMapgencode $fGEncodeU1 $fGEncodeK1 $fGEncode:+: $fGEncode:*: $fGEncodeM1foldMapM$fDecodeHashMapidgdecode fieldDecode $fGDecodeU1 $fGDecodeK1 $fGDecodeK10 $fGDecodeK11 $fGDecodeK12 $fGDecodeK13 $fGDecodeK14 $fGDecode:+: $fGDecode:*: $fGDecodeM1 GHC.GenericsGenericMonoiddeeps_FpR4obOZALU1lutWnrBldiControl.DeepSeqNFData Data.MonoidLastFloatRepGMessageNFDatagrnfgmemptygmappend$fDecodeWireMessageTFCo:R:RequirednMessageTFCo:R:OptionalnMessage$fGMessageNFDataU1$fGMessageNFDataK1$fGMessageNFData:+:$fGMessageNFData:*:$fGMessageNFDataM1$fNFDataMessage$fGMessageMonoidU1$fGMessageMonoidK1$fGMessageMonoid:+:$fGMessageMonoid:*:$fGMessageMonoidM1$fMonoidMessage