h*=2c      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~1.5(c) Fumiaki Kinoshita 2019BSD3'Fumiaki Kinoshita  Experimental Safe-Inferred "9 mwineryA Bazaar (chain of indexed store comonad)-like structure which instead works for natural transformations.winery A monad with  Reader [r] and Either WineryException4 combined, used internally to build an extractor. r? is used to share environment such as extractors for fixpoints.wineryExceptions thrown by a  wineryThe Decoder monadwinery$A state monad. The reason being not State from transformers is to allow coercion for newtype deriving and DerivingVia.wineryRun a  !   !   (c) Fumiaki Kinoshita 2019BSD3'Fumiaki Kinoshita  Provisional Safe-Inferred "#9:;<P4winery!Exceptions thrown by an extractorAwineryA fixpoint of a decoderBwineryschema bound by x.  is a basis of the variablesCwineryC is a Plan6 that creates a function to extract a value from Term.The  instance can be used to build a user-defined extractor. This is also +, meaning that fallback plans may be added."Don't get set into one form, adapt it and build your own, and let it grow, be like water."FwineryThis may be thrown if illegal H is passed to an extractor.HwineryCommon representation for any winery data. Handy for prettyprinting winery-serialised data.]winerySchema generator`wineryThe basic schema datatypeawinerybinds a fixpointbwinerySVar n& refers to the n-th innermost fixpointvwinerynanoseconds from POSIX epochywineryA schema preserves structure of a datatype, allowing users to inspect the data regardless of the current implementation."Yeah, it@s just a memento. Just, you know, from the first time we met."zwinery7Tag is an extra value that can be attached to a schema.~winery!The current version of the schemawineryObtain the schema of the schema corresponding to the specified version.winery Pretty-print 4z{|}y`huabcdefgijklmnopqrstvwx]^_~HIJKLMNOPQRSTUVWXYZ[\FGCDE=@AB>?4<56789:;z{|}y`huabcdefgijklmnopqrstvwx]^_~HIJKLMNOPQRSTUVWXYZ[\FGCDE=@AB>?4<56789:; Safe-Inferred")*0146#wineryAn extractor for individual fields. This distinction is required for handling recursions correctly.$Recommended extension: ApplicativeDowineryEncode all the fieldswinery$Encoded in variable-length quantity.winery A bundle of  methodswinerySerialisable datatypewinery"Obtain the schema of the datatype.winerySerialise a value.wineryA value of 'Extractor a' interprets a schema and builds a function from H to a. This must be equivalent to % when the schema is the current one.If  s returns a function, the function must return a non-bottom for any H  decodeTerm s returns.It must not return a function if an unsupported schema is supplied.&getDecoderBy extractor (schema (Proxy a)) must be Right d where d@ is equivalent to .winery'Decode a value with the current schema.   x D xwinery;Instead of the four methods above, you can supply a bundle.wineryModify wineryModify wineryBind a schema. While this does not change the semantics, it helps reducing the schema size when it has multiple children with the specified type (use TypeApplications to specify a type).wineryObtain a schema on ], binding a fixpoint when necessary. If you are hand-rolling a definition of #, you should call this instead of .winery"Obtain the schema of the datatype.;"Tell me what you drink, and I will tell you what you are."winery#Handle (recursive) schema bindings.winery time-1.9.1winery%Extract a list or an array of values.wineryGeneric implementation of  for a record.wineryGeneric implementation of  for a record.wineryGeneric implementation of  for a record.wineryGeneric implementation of  for a record.winery Synonym for wineryGeneric implementation of  for a record.wineryGeneric implementation of  for a record.wineryGeneric implementation of  for an ADT.wineryGeneric implementation of  for an ADT.wineryGeneric implementation of  for an ADT.wineryCollect extractors as a  keyed by constructor nameswinery Bundle a  of C!s into an extractor of a variant.wineryExtract a field of a record.winery#Extract a field using the supplied C.wineryBuild an extractor from a .winery$Collect extractors for record fieldswinery$Collect extractors for record fieldswinerydefault value (optional)winerydefault value (optional)(c) Fumiaki Kinoshita 2019BSD3'Fumiaki Kinoshita  Provisional Safe-Inferred "#<(iwineryA product with one field. Useful when creating a custom extractor for constructors.wineryThe . instance is generically defined for variants."The one so like the other as could not be distinguish'd but by names."winery3Serialise a value as a product (omits field names).>"I get ideas about what's essential when packing my suitcase."wineryThe - instance is generically defined for records."Remember thee! Yea, from the table of my memory I'll wipe away all trivial fond records."wineryDeserialiser for a H.("I will read anything rather than work."wineryDeserialise a d   .winery,Check the integrity of a Serialise instance."No tears in the writer, no tears in the reader. No surprise in the writer, no surprise in the reader."winery in terms of ; note that it's very slow.wineryObtain a decoder from a schema."A reader lives a thousand lives before he dies... The man who never reads lives only one."wineryGet a decoder from a C and a schema.winery(Serialise a value along with its schema."Write the vision, and make it plain upon tables, that he may run that readeth it."winery then write it to a file.winery"Serialise a value with the schema.winerySplit a y from a .winery9Serialise a schema (prefix with the version number only).wineryDeserialise a d   ."Old wood to burn! Old wine to drink! Old friends to trust! Old authors to read!"wineryDeserialise a d    using an C.wineryDeserialise a d    using the current schema.wineryDeserialise a file. Throws 4wineryDeserialise a schema.winery%Serialise a value without its schema.$"Any unsaved progress will be lost."winery#Extract a field using the supplied C.wineryTries to extract a specific constructor of a variant. Useful for implementing backward-compatible extractors.wineryTries to match on a constructor. If it doesn't match (or constructor doesn't exist at all), leave it to the successor.  extractor = (Just, Just)  (Nothing, () -> Nothing)  extractVoidwineryNo constructors remaining.winery Create a ) where methods are defined via a wrapper.winerywrapper constructor (e.g. )y`huabcdefgijklmnopqrstvwxz{|} CDE HIJKLMNOPQRSTUVWXYZ[\FG4<56789:;]y`huabcdefgijklmnopqrstvwxz{|} CDE HIJKLMNOPQRSTUVWXYZ[\FG4<56789:;]11(c) Fumiaki Kinoshita 2019BSD3'Fumiaki Kinoshita  Experimental Safe-Inferred9-winery"Query is a transformation between C+s. Like jq, this returns a list of values.wineryThrow an error.winery!Takes a list and traverses on it.wineryTakes a list and enumerates elements in the specified range. Like Python's array slicing, negative numbers counts from the last element.winery0Takes a record and extracts the specified field.wineryTakes a variant and returns a value when the constructor matches.winery!Propagate values if the supplied  doesn't return False.  (c) Fumiaki Kinoshita 2019BSD3'Fumiaki Kinoshita  Experimental Safe-Inferred ")*.1winerySpace-separated list of terms translate to a tabular output, applying the queries in parallel(c) Fumiaki Kinoshita 2019BSD3'Fumiaki Kinoshita  Experimental Safe-Inferred"6=23 wineryA class to provide test values and gather tests for its components. It is recommended to use the generic default methods.wineryA list of values that can be used as test cases. It should contain at least one value as long as there is a non-bottom value in the type.winery6Inherited set of test cases for each type it involves.wineryTypes with concrete test cases./"Doubt is useful, it keeps faith a living thing. After all, you cannot know the strength of your faith until it has been tested."/winery List of test cases for the type.wineryConstruct a test case.wineryMerge multiple tests into one.winery5Gather all test cases involved in the specified type.winery:Generate test cases and print them to the standard output.winery the schemawinery serialisedwineryexpected        !"#$%&'()*+,-./0123456789:;<=>?@ABCDDEFGHHIJKLMNOPQRSTUVWXYZ[\]^_`aabcdefghijklmnopqrstuvwxyz{|}~!winery-1.5-Bq5ifBi6HAf2b8LdDeGy5OCodec.Winery.InternalCodec.Winery.BaseCodec.Winery.Class Codec.WineryCodec.Winery.QueryCodec.Winery.Query.ParserCodec.Winery.TestwineryB Bytestring TransFusion unTransFusionStrategy unStrategyDecodeExceptionInsufficientInputIntegerOverflow InvalidTagDecoder unDecoder DecoderResultStaterunStateunsignedVarIntvarInt evalState evalDecodergetWord8 decodeVarIntdecodeVarIntFinite getWord16 getWord32 getWord64getBytes unsafeIndexVlookupWithIndexV indexDefault throwStrategy$fMonadFixState $fMonadState$fApplicativeState$fMonadDecoder$fApplicativeDecoder$fExceptionDecodeException$fMonadFixStrategy$fAlternativeStrategy$fMonadStrategy$fApplicativeStrategy$fApplicativeTransFusion$fFunctorTransFusion$fFunctorStrategy$fEqDecodeException$fShowDecodeException$fReadDecodeException$fFunctorDecoder$fFunctorDecoderResult$fFunctorStateWineryExceptionUnexpectedSchema FieldNotFound TypeMismatchProductTooSmallUnboundVariable EmptyInput WineryMessageUnsupportedSchemaVersion Strategy' StrategyEnv StrategyBind DynDecoder BoundSchema Extractor runExtractorExtractException InvalidTermTermTBoolTCharTWord8TWord16TWord32TWord64TInt8TInt16TInt32TInt64TIntegerTFloatTDoubleTBytesTTextTUTCTimeTVectorTProductTRecordTVariant SchemaGen unSchemaGenSchemaPSFixSVarSVectorSProductSRecordSVariantSBoolSCharSWord8SWord16SWord32SWord64SInt8SInt16SInt32SInt64SIntegerSFloatSDoubleSBytesSTextSUTCTimeSTagSLetSchemaTagTagIntTagStrTagListcurrentSchemaVersionbootstrapSchema pushTraceprettyWineryException $fPrettyTag $fIsListTag $fIsStringTag$fPrettySchemaP$fApplicativeSchemaGen$fFunctorSchemaGen $fPrettyTerm $fToJSONTerm$fExceptionExtractException$fIsStringWineryException$fExceptionWineryException$fAlternativeExtractor$fApplicativeExtractor$fFunctorExtractor$fShowWineryException$fShowExtractException $fShowTerm $fShowSchemaP $fReadSchemaP $fEqSchemaP$fGenericSchemaP$fFunctorSchemaP$fFoldableSchemaP$fTraversableSchemaP $fShowTag $fReadTag$fEqTag $fGenericTag SubextractorunSubextractorGSerialiseVariant variantSchemavariantExtractorGEncodeVariantvariantEncoderGDecodeVariantvariantDecoderGConstructorCount variantCountGSerialiseProduct productSchemaproductExtractorGSerialiseRecord recordSchemarecordExtractorGDecodeProductproductDecoderGEncodeProductproductEncoderVarInt getVarIntBundleSerialisebundleSchemaGenbundleToBuilderbundleExtractorbundleDecodeCurrent Serialise schemaGen toBuilder extractor decodeCurrentbundleSerialisealterSchemaGenalterExtractor withSchema getSchemaschemaunexpectedSchema mkExtractor extractListBygschemaGenRecordgtoBuilderRecordgextractorRecordextractorRecord'gdecodeCurrentRecordgschemaGenProductgtoBuilderProductgextractorProductgdecodeCurrentProductextractorProduct'gschemaGenVariantgtoBuilderVariantgextractorVariantgvariantExtractorsbuildVariantExtractorgdecodeCurrentVariant extractFieldextractFieldBybuildExtractorbuildRecordExtractorF bextractorsFbuildRecordExtractor bextractors$fSerialiseSolo$fSerialiseBarbie$fSerialiseVoid$fSerialiseComplex$fSerialiseArg$fSerialise:~:$fSerialiseOrdering$fSerialiseEither$fSerialise(,,,,,)$fSerialise(,,,,)$fSerialise(,,,)$fSerialise(,,)$fSerialise(,)$fSerialiseScientific$fSerialiseRatio$fSerialiseSeq$fSerialiseIntSet$fSerialiseSet$fSerialiseIntMap$fSerialiseHashMap$fSerialiseMap$fSerialiseVector$fSerialiseVector0$fSerialiseVector1$fSerialiseNonEmpty$fSerialiseList$fSerialiseNominalDiffTime$fSerialiseUTCTime$fSerialiseByteString$fSerialiseByteString0$fSerialiseMaybe$fSerialiseChar$fSerialiseNatural$fSerialiseText$fSerialiseDouble$fSerialiseFloat$fSerialiseInt64$fSerialiseInt32$fSerialiseInt16$fSerialiseInt8$fSerialiseWord$fSerialiseWord64$fSerialiseWord32$fSerialiseWord16$fSerialiseWord8$fSerialiseBool $fSerialise()$fSerialiseSchemaP$fSerialiseTag$fSerialiseInteger$fSerialiseVarInt$fSerialiseInt$fGEncodeProductkM1$fGEncodeProductkM10$fGEncodeProductkM11$fGEncodeProductk:*:$fGEncodeProductkU1$fGDecodeProductk:*:$fGDecodeProductkM1$fGDecodeProductkK1$fGDecodeProductkU1$fGSerialiseRecordkM1$fGSerialiseRecordkM10$fGSerialiseRecordkM11$fGSerialiseRecordk:*:$fGSerialiseProductk:*:$fGSerialiseProductkM1$fGSerialiseProductkK1$fGSerialiseProductkU1$fGConstructorCountFUNM1$fGConstructorCountFUNM10$fGConstructorCountFUN:+:$fGDecodeVariantkM1$fGDecodeVariantkM10$fGDecodeVariantk:+:$fGEncodeVariantkM1$fGEncodeVariantkM10$fGEncodeVariantk:+:$fGSerialiseVariantkM1$fGSerialiseVariantkM10$fGSerialiseVariantkM11$fGSerialiseVariantk:+:$fFunctorSubextractor$fApplicativeSubextractor$fAlternativeSubextractor $fShowVarInt $fReadVarInt $fEqVarInt $fOrdVarInt $fEnumVarInt$fBoundedVarInt $fNumVarInt $fRealVarInt$fIntegralVarInt $fBitsVarInt $fSerialiseAp$fSerialiseCompose$fSerialiseAlt$fSerialiseMin$fSerialiseMax$fSerialiseZipList$fSerialiseFirst$fSerialiseLast$fSerialiseFirst0$fSerialiseLast0$fSerialiseDual$fSerialiseSum$fSerialiseProduct$fSerialiseDown$fSerialiseAll$fSerialiseAny$fSerialiseConst$fSerialiseIdentity SingleFieldgetSingleField WineryVariantunWineryVariant WineryProductunWineryProduct WineryRecordunWineryRecord decodeTerm encodeTermdeserialiseTerm testSerialisedecodeCurrentDefault getDecoder getDecoderBy serialisewriteFileSerialisetoBuilderWithSchema splitSchemaserialiseSchemaschemaToBuilder deserialise deserialiseBydeserialiseOnlyreadFileDeserialisedeserialiseSchema serialiseOnlyextractProductItemByextractConstructorByextractConstructor extractVoid bundleVia$fSerialiseWineryRecord$fSerialiseWineryProduct$fSerialiseWineryVariant$fSerialiseSingleField$fShowSingleField$fEqSingleField$fOrdSingleField$fGenericSingleFieldQueryrunQueryinvalidlistrange productItemfieldconselect$fAlternativeQuery$fApplicativeQuery$fCategoryTYPEQuery$fFunctorQuery parseQueryTestGen genTestCasesinheritedTestsTested testCases testGroupstestCase mergeTestsallTests printTestsbuildTestGroups $fGTestGen:*: $fGTestGen:+: $fGTestGenM1$fGTestGenRec1 $fGTestGenU1 $fGTestGenV1$fTestGenByteString $fTestGenText $fTestGenChar$fTestGenDouble$fTestGenFloat$fTestGenWord64$fTestGenWord32$fTestGenWord16$fTestGenWord8 $fTestGenInt $fTestGenVoid $fTestGenBool $fTestGen() $fTestGenMap$fTestGenHashMap$fTestGenVector$fTestGenVector0 $fTestGenSeq $fTestGenSet $fTestGenList$fTestGenEither$fTestGen(,,,) $fTestGen(,,) $fTestGen(,) $fGTestGenK1 $fTestedMaybe$fTestGenMaybe $fTestedMap$fTestedHashMap$fTestedVector$fTestedVector0 $fTested(,,,) $fTested(,,) $fTested(,)$fTestedEither $fTestedList $fTestedSet $fTestedSeq$fTestedIdentity$fTestedByteString $fTestedText $fTestedChar $fTested()$fTestedDouble $fTestedFloat$fTestedWord64$fTestedWord32$fTestedWord16 $fTestedWord8 $fTestedInt $fTestedBool $fTestedVoid$fTestGenIdentityghc-prim GHC.TypesIntbaseGHC.Base Applicative AlternativerecursiveStrategynanosecondsToNominalDiffTime2unordered-containers-0.2.20-IKspZ9X65m0FyUIlbDwiCVData.HashMap.InternalHashMapbytestring-0.11.5.2Data.ByteString.Internal.Type ByteString parseTerms