`YM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLSafe+None -1345;=FKT#,LFixed 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 M N2 used to select packed sequence encoding/decoding.   fields use O and P% 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 Q.iFunctions for wrapping and unwrapping record fields. When applied they will have types similar to these:  ::  '1' (% ) ->   ::  ->  '1' (% )  ::  '2' (%   ) -> R     :: R    ->  '2' (%   )  ::  '3' (% S) -> [S]  :: [S] ->  '3' (% S)  ::   '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 M N is needed to make  fields have the same shape as ,  and  . This is the   N with a T 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.UIso:   ( n (% a)) = [a] VIso:   ( n (% a)) = R a WIso:   ( n (% a)) = a XIso:   ( n (  a)) = [a] YIso:   ( n (  a)) = R a ZIso:   ( n (  a)) = a [Iso:   (  n (  a)) = [a] \Iso:   (  n (% a)) = [a] (  !"#$%&'    !"#$%&'None 01;<=KV/ ,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, double/=For: string, bytes, embedded messages, packed repeated fields0For: groups (deprecated)1For: groups (deprecated)2For: fixed32, sfixed32, float3Field identifiers8This 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).9AThis should be used on unsigned Integral types only (not checked)]Empty lists are not written out ()*+,-./0123456789:;<=>()*+,-./012None 7;<=FSTV3MB"Encode a Protocol Buffers message.CfEncode a Protocol Buffers message prefixed with a varint encoded 32-bit integer describing its length.^Untyped message encoding?@ABC?_@AANone 7;<=FSTV9G"Decode a Protocol Buffers message.HfDecode a Protocol Buffers message prefixed with a varint encoded 32-bit integer describing its 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 accumulatoraUntyped message decoding,  F = b DcEFGHdDcEFFNone 345;<=FKSTVJrThe 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 (e, T ) instance @ Inner instance E/ Inner data Outer = Outer { outerField ::  '1' ( Inner) } deriving (e, T ) instance @ Outer instance E Outer It's worth noting that  J a  is a f and g instance. The fJ behavior models that of the Protocol Buffers documentation, effectively h. 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 J types: data Inner = Inner{inner ::  '2' (% i )} deriving (e, T ) instance @ Inner instance E& Inner data Outer a = Outer{outer ::  '3' (J a)} deriving (e, T ) instance @ a => @ (Outer a) instance E a => E (Outer a) This fails because E needs to know that the message can be merged. The resulting error implies that you may want to add a constraint to the internal I class: 4/tmp/tst.hs:18:10: Could not deduce (protobuf-0.1:I (j. a)) arising from a use of `protobuf-0.1: " .$gdmdecode' from the context (E a) bound by the instance declaration at /tmp/tst.hs:18:10-39 Possible fix: add an instance declaration for (protobuf-0.1:I (j, a)) In the expression: (protobuf-0.1:".$gdmdecode) In an equation for F: decode = (protobuf-0.1:1 .$gdmdecode) In the instance declaration for `E (Outer a)' The correct fix is to add the f constraint for the message:  - instance (@ a) => E (Outer a) + instance (f (J a), E a) => E (Outer a) kIso:   ( n (J a)) = [a] lIso:   ( n (J a)) = R a mIso:   ( n (J a)) = a IJKLnoIpqJKLNoneV8  !"#$%&'()*+,-./0123456789:;<=>?DIJKL83,-./012:6*+();<=>47589%&' "#$ ! JKLD?INoneX %@ABCEFGHJ@AABCEFFGH % Jr  !"#$%&'()**+,,-.#/0$123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYWZ[W\]W\^WZ_WZ`abcWdefghijklmnopqrWZstuWvwWZxyz{W|}ab~Wvfgh'protobuf-0.2.1.2-GS6EhpPZBg5GNFuXDVbS0jData.ProtocolBuffersData.ProtocolBuffers.InternalData.ProtocolBuffers.OrphansData.ProtocolBuffers.TypesControl.Alternativeempty Data.TextTextData.IntInt32 Data.WordWord64Data.Functor.IdentityIdentity Data.TaggedTaggedData.ProtocolBuffers.WireData.ProtocolBuffers.EncodeData.ProtocolBuffers.DecodeData.ProtocolBuffers.MessageRequiredValueInt64MessageDecodeFixedSigned 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.EnumfromEnumtoEnumNothingMaybeghc-prim GHC.TypesDoubleGHC.ShowShow$fHasFieldField$fHasFieldField0$fHasFieldField1$fHasFieldField2$fHasFieldField3$fHasFieldField4$fHasFieldField5$fHasFieldField6encodePackedList$fEncodeHashMapgencodefoldMapM$fDecodeHashMapidgdecode fieldDecode GHC.GenericsGenericMonoiddeepseq-1.4.3.0Control.DeepSeqNFData Data.MonoidLastFloatRepGMessageNFDatagrnfgmemptygmappend