h$)^V      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`Noneabcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred  size-basedA sized functor is an applicative functor extended with a notion of cost/size of contained values. This is useful for any type of bounded recursion over infinite sets, most notably for various kind of enumerations.The intention is that every sized functor definition models a (usually) infinite set (technically a bag) with a finite number of values of any given size. As long as every cyclic (recursive) definition has at least one application of pay, this invariant is guaranteed. The module Control.Enumerable provides sized functor definitions for a lot of data types, such that the size of a value is the number of constructor applications it contains. It also allows deriving these functors for any user defined data type (using Template Haskell). size-based7Increases the cost/size of all values in the given set. size-based Default: pair a b = (,)  $ a  * b. size-based Default: aconcat = foldr (<|>) empty size-basedFinite numeric types. fin n contains all non-negative numbers below n. This definition is flat, all integers have the same size. Implementing this function efficiently will have a great impact on applications that use a lot of bounded numeric types (e.g. Int).%Default: aconcat (map pure [0..n-1])  size-basedSame as  but the size of values may differ. By default, the size of an integer is the number of significant bits in its binary representation. In other words, 0 has size zero, the values for size k>0 in  finBits n are in the interval (2^(k-1),min (2^k-1) n).  size-basedNon-negative integers. By default, the size of an integer is the number of digits in its binary representation.%  None  size-basedWork in progress size-based.A class of infinite precision integral types.  is the principal class member. size-based;Used instead of enumerate when manually building instances. size-basedGuarantees local sharing. All enumerations are shared inside each invokation of local, but may not be shared between them. size-basedThis is the primary way to access enumerations for usage. Guarantees global sharing of enumerations of the same type. Note that this means the enumerations are never garbage collected. size-basedBuilds an enumeration of a data type from a list of constructors (see c0-c7) size-based/Takes a constructor with arity 0 (a pure value) size-basedTakes a constructor of arity 1 size-based!Builds a suitable definition for  coEnumerate given an pattern matching function for a data type (see source for examples).# size-basedDerive an instance of Enumberable with Template Haskell, with rules for some specific constructors( size-basedNot a proper injection) size-basedNot a proper injection* size-basedASCII characters? size-basedThe unit constructor is free   !"# !" # None3I size-based&Constructs all values of a given size.J size-based)Constructs all values up to a given size.FGHIJKIJKFGHNone3U size-basedCounts the number of values of a all sizes. Usage: @global :: Count [Bool]X size-basedCounts the number of values of a given size, 0 if out of bounds.   !"#UVWXYUVWXY3Y4    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPPQRSTUVWXYZ[\]^^_`abcdefghijkijlimnimoimpimqimrimsimtimuimvimwimximyimzim{im|im}im~imimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijimimijijijijijijijijijijijijijijijijijijimimimimimijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijimimijijijimimimijijijimimimimimijijijijimijijijijijimimimimimimiiiiiiiiiiiiiiiiiiiiiiiiiiimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimimiiiiiiiiijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijij)size-based-0.1.3.0-73O2JA8Efs8B7GY3hJzmbjControl.Enumerable Control.SizedControl.Enumerable.ValuesControl.Enumerable.CountControl.Enumerable.DerivebaseData.Typeable.InternalTypeable1dictionary-sharing-0.1.0.0-6E2jzy8j5Bt3YZ8XTru2I9Data.ClassSharingshareShared ShareableSizedpaypairaconcatfinfinSizednaturalskbitsConstructorDeriv CoEnumerable coEnumerateInfinite Enumerable enumerateaccesslocalglobaldatatypec0c1c2c3c4c5c6c7functionderiveEnumerabledAll dExcludingdExceptderiveEnumerable'$fSizedShareable$fEnumerableNonEmpty$fEnumerablePrintable$fEnumerableUnicode$fEnumerableDouble$fEnumerableFloat$fEnumerableChar$fEnumerableInt64$fEnumerableInt32$fEnumerableInt16$fEnumerableInt8$fEnumerableInt$fEnumerableWord64$fEnumerableWord32$fEnumerableWord16$fEnumerableWord8$fEnumerableWord$fEnumerableInteger$fEnumerableOrdering$fEnumerableMaybe$fEnumerable[]$fEnumerableEither$fEnumerableBool$fEnumerable(,,,,)$fEnumerable(,,,)$fEnumerable(,,)$fEnumerable(,)$fEnumerable()$fEnumerableNat$fEnumerableRatio$fInfiniteInteger$fCoEnumerable[]$fCoEnumerableBool$fEnumerable->Values runValuesvaluesvalues' allValues $fSizedValues$fAlternativeValues$fApplicativeValues$fFunctorValues$fSizedMaxSize$fAlternativeMaxSize$fApplicativeMaxSize$fFunctorMaxSize $fShowMaxSizeCountcount!!* $fSizedCount $fMonoidCount$fSemigroupCount$fAlternativeCount$fApplicativeCount$fFunctorCount $fShowCounttemplate-haskellLanguage.Haskell.TH.SyntaxnewNamemkName Language.Haskell.TH.Lib.InternalcharLstringLintegerLintPrimL wordPrimL floatPrimL doublePrimL rationalL stringPrimL charPrimLlitPvarPtupP unboxedTupP unboxedSumPconPinfixPtildePbangPasPwildPrecPlistPsigPviewPfieldPatmatchclausevarEconElitEappEappTypeEinfixEinfixAppsectionLsectionRlamElamCaseE unboxedSumEcondEmultiIfEletEcaseEdoEcompEfromE fromThenEfromToE fromThenToElistEsigErecConErecUpdEstaticE unboundVarElabelEimplicitParamVarEmdoEfieldExpguardedBnormalBnormalGEpatGEbindSletSnoBindSparSrecSfunDvalDinstanceWithOverlapDsigDforImpDpragInlD pragSpecD pragSpecInlD pragSpecInstDpragAnnD tySynInstDinfixLDinfixRDinfixND roleAnnotD defaultSigDpatSynD patSynSigD pragCompleteDimplicitParamBindDkiSigDcxtnoSourceUnpackednesssourceNoUnpack sourceUnpacknoSourceStrictness sourceLazy sourceStrictnormalCrecCinfixCgadtCrecGadtCbangbangType varBangTypeunidir implBidir explBidir prefixPatSyn infixPatSyn recordPatSyn forallVisTvarTconTtupleT unboxedTupleT unboxedSumTarrowTlistTappTappKindT equalityTlitT promotedTpromotedTupleT promotedNilT promotedConsT wildCardTimplicitParamTinfixTnumTyLitstrTyLitnominalRrepresentationalRphantomRinferRvarKconKtupleKarrowKlistKappKinjectivityAnncCallstdCallcApiprim javaScriptunsafesafe interruptiblefunDepruleVar typedRuleVarvalueAnnotationtypeAnnotationmoduleAnnotationExpImplicitParamVarELabelE UnboundVarEStaticERecUpdERecConESigEListE ArithSeqECompEMDoEDoECaseELetEMultiIfECondE UnboxedSumE UnboxedTupETupELamCaseELamEParensEUInfixEInfixEAppTypeEAppELitEVarEConEMatchClauseQExpQDecQPatViewPSigPListPRecPWildPAsPBangPTildePParensPUInfixPInfixPConP UnboxedSumP UnboxedTupPTupPLitPVarPMatchQClauseQStmtQConQTypeQTypeImplicitParamT WildCardTLitT ConstraintTStarT PromotedConsT PromotedNilTPromotedTupleTListT EqualityTArrowT UnboxedSumT UnboxedTupleTTupleTParensTUInfixTInfixT PromotedTConTVarTSigTAppKindTAppTForallT ForallVisTDecImplicitParamBindD PatSynSigDPatSynD DefaultSigDStandaloneDerivD RoleAnnotDClosedTypeFamilyDOpenTypeFamilyD TySynInstD NewtypeInstD DataInstD DataFamilyDPragmaDInfixDForeignDKiSigDSigD InstanceDClassDTySynDNewtypeDDataDFunDValD BangTypeQ VarBangTypeQFieldExpFieldPatNamePatQ FieldPatQ FieldExpQFunDepPredPredQ TyVarBndrQDecsQ RuleBndrQ TySynEqnQTExpunTypeInjectivityAnnKindQOverlap IncoherentOverlaps Overlappable Overlapping DerivClauseQDerivStrategyQ stockStrategyanyclassStrategynewtypeStrategy viaStrategyghc-boot-th-8.10.2GHC.LanguageExtensions.Type ExtensionStandaloneKindSignaturesCUSKsImportQualifiedPost StarIsTypeQuantifiedConstraintsNumericUnderscoresEmptyDataDerivingMonadFailDesugaring StrictDataTypeApplicationsStaticPointersNamedWildCardsPartialTypeSignaturesPatternSynonyms EmptyCaseOverloadedLabelsDuplicateRecordFieldsHexFloatLiteralsNegativeLiteralsBinaryLiterals MultiWayIf LambdaCaseTraditionalRecordSyntax RelaxedLayoutNondecreasingIndentationDatatypeContexts!AlternativeLayoutRuleTransitionalAlternativeLayoutRuleExplicitForAllPackageImportsExplicitNamespaces TypeOperatorsImpredicativeTypes RankNTypesLiberalTypeSynonyms PatternGuards TupleSectionsPostfixOperators RecursiveDoGeneralizedNewtypeDerivingMonadComprehensionsTransformListCompParallelListCompRoleAnnotationsKindSignaturesEmptyDataDecls MagicHashExistentialQuantification UnicodeSyntaxFunctionalDependenciesNullaryTypeClassesMultiParamTypeClassesConstrainedClassMethodsFlexibleInstancesFlexibleContextsTypeSynonymInstances DerivingViaDerivingStrategies DeriveLiftDeriveAnyClassDefaultSignatures DeriveGenericDeriveFoldableDeriveTraversable DeriveFunctorAutoDeriveTypeableDeriveDataTypeableStandaloneDeriving ApplicativeDo InstanceSigs DataKinds PolyKindsConstraintKindsRebindableSyntaxBlockArgumentsDoAndIfThenElseNPlusKPatterns GADTSyntaxGADTs ViewPatterns RecordPunsRecordWildCardsDisambiguateRecordFields NumDecimalsOverloadedListsOverloadedStrings TypeInTypeTypeFamilyDependencies TypeFamilies BangPatternsUnliftedNewtypes UnboxedSums UnboxedTuplesAllowAmbiguousTypesScopedTypeVariablesImplicitPreludeImplicitParams QuasiQuotesTemplateHaskellQuotesTemplateHaskellArrowsParallelArrays JavaScriptFFIGHCForeignImportPrimCApiFFIInterruptibleFFIUnliftedFFITypesForeignFunctionInterfaceExtendedDefaultRulesRelaxedPolyRecMonoLocalBinds MonoPatBindsMonomorphismRestrictionUndecidableSuperClassesIncoherentInstancesUndecidableInstancesOverlappingInstancesStrictCppLanguage.Haskell.TH.Lib unboxedTupEtupEmkBytesstandaloneDerivWithStrategyD derivClausetyVarSigkindSignoSig constraintKstarKkindedTVplainTVsigTforallTforallCtySynEqnclosedTypeFamilyDopenTypeFamilyD dataFamilyD newtypeInstD dataInstD pragRuleDclassDnewtypeDdataDtySynD thisModuleappsE varStrictType strictTypeunpacked notStrictisStrictequalPclassPparensTuInfixTstandaloneDerivD pragLineD instanceDstringE arithSeqElam1EuInfixEparensEdynpatGnormalG fromThenToRfromToR fromThenRfromRparensPuInfixP bytesPrimLInfoQTExpQTyLitQCxtQBodyQGuardQRangeQSourceStrictnessQSourceUnpackednessQBangQ StrictTypeQVarStrictTypeQ PatSynDirQ PatSynArgsQFamilyResultSigQLanguage.Haskell.TH.Ppr pprParendTypepprPatpprLitpprExppprintPprpprppr_list defaultFixity maxPrecedenceunboxedSumTypeNameunboxedSumDataNameunboxedTupleTypeNameunboxedTupleDataName tupleTypeName tupleDataName nameSpace namePackage nameModulenameBase extsEnabled isExtEnabledrunIOlocation isInstancereifyConStrictness reifyModulereifyAnnotations reifyRolesreifyInstances reifyType reifyFixityreifylookupValueNamelookupTypeNamerecover reportWarning reportErrorreportrunQ NameSpaceLocloc_end loc_start loc_module loc_filename loc_packageInfoTyVarIVarIPatSynIDataConI PrimTyConIFamilyITyConIClassIClassOpI ModuleInfo ParentNameSumAltSumArityArityUnlifted InstanceDecFixityFixityDirectionInfixNInfixLInfixRLit CharPrimL BytesPrimL StringPrimL DoublePrimL FloatPrimL WordPrimLIntPrimL RationalLIntegerLCharLStringLBodyGuardedBNormalBGuardNormalGPatGStmtRecSParSNoBindSBindSLetSRange FromThenToRFromToRFromR FromThenR DerivClause DerivStrategy ViaStrategyNewtypeStrategy StockStrategyAnyclassStrategy PatSynTypeTypeFamilyHeadTySynEqnForeignImportFExportFCallconv JavaScriptPrimCApiCCallStdCallSafety InterruptibleUnsafeSafePragma CompletePLinePAnnPRulePSpecialiseInstPInlineP SpecialisePInline InlinableNoInline RuleMatchConLikeFunLikePhases BeforePhase AllPhases FromPhaseRuleBndrRuleVar TypedRuleVar AnnTargetValueAnnotationModuleAnnotationTypeAnnotationCxtSourceUnpackednessNoSourceUnpackedness SourceUnpackSourceNoUnpackSourceStrictnessNoSourceStrictness SourceLazy SourceStrictDecidedStrictness DecidedUnpack DecidedLazy DecidedStrictConRecGadtCGadtCForallCInfixCNormalCRecCBang PatSynDir ExplBidirUnidir ImplBidir PatSynArgs RecordPatSyn PrefixPatSyn InfixPatSyn TyVarBndrPlainTVKindedTVFamilyResultSigTyVarSigNoSigKindSigTyLitNumTyLitStrTyLitRoleInferRPhantomRNominalRRepresentationalR AnnLookupAnnLookupModule AnnLookupNameKind instanceForGHC.Base<$ Applicative<*liftA2*>pure<*>Control.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListData.Functor.ConstConstgetConst Data.Functor<$>liftA3liftA<**> Alternativemanysomeempty<|>integer-wired-inGHC.Integer.TypeInteger<->